用sql查询程序解决速度瓶颈问题

问题描述:

这是一个开放式的面试问题。我无法得到满意的答案。 现在的问题是:用sql查询程序解决速度瓶颈问题

如果您试图修复速度问题,该问题涉及功能需要90秒才能执行,而客户预计该功能需要不到10秒时间,那么您将如何解决问题并解决问题?假设该功能有10个查询,30个计算和3000行代码分布在5个模块中

我认为答案的第一部分是,无论代码语言是什么,首先要验证瓶颈在SQL查询中,而不是在某些处理中。通过告诉你每种方法花费的时间量,分析器还能够告诉你哪些查询花费的时间最多。一旦你得到了,你可以使用数据库查询优化器来修复查询,如果这是问题。

+1

+1配置文件,配置文件,配置文件,那么我不能说100%的数据库集中在数据库上。作为一名软件*工程师*,您需要数据才能真正解决任何问题。 – mellamokb 2012-03-30 20:19:10

+0

我想当它说,而不是10secs它需要90秒,这意味着有什么地方真的出了问题。这也可能是因为客户的计算机内存很小。 – 2012-03-30 20:42:02

+1

我想这确实会提出答案的下一部分将是,如果您没有发现任何明显的问题,可能由于问题或系统的限制,客户的期望可能不正确。 – Dave 2012-03-30 20:47:49

过于开放式的,但有一些事情你可以尝试:

  • 确保了解客户的要求,正确

  • 确保你明白的地方的性能瓶颈是在当前设置

  • 确保您在 记

  • 有疑问存在正确的索引
  • 优化DB模式,反规范化在必要时避免联接

  • 探索缓存和预计算结果如适用作为一个选项,这样你就不必查询数据库摆在首位。

  • 如果所有的技术途径被探索或者时间和精力太大,如果需要的话,重新设置客户的期望值。

赫姆...我想尝试每一个“台阶”隔离,看看他们每个人都是花费的时间执行。我将首先关注SQL,方法是使用分析器运行跟踪,因为它们通常需要更长的时间才能运行。一旦我有了价值观,我会决定下一步。如果我看到Db只是执行时间的10%,例如