Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用sql查询解决程序中的速度瓶颈问题_Sql - Fatal编程技术网

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

使用sql查询解决程序中的速度瓶颈问题,sql,Sql,这是一个开放式的面试问题。我不能得到一个满意的答案。 问题是: 如果您试图修复一个速度错误,该错误涉及到一个需要90秒才能执行的功能,而客户预期该功能需要不到10秒的时间,您将如何处理该问题并解决它?假设该功能有10个查询、30个计算和3000行代码,分布在5个模块上我认为答案的第一部分是,无论代码语言是什么,您都可以使用探查器来首先验证瓶颈在SQL查询中,而不是在某些处理中。分析器还可以通过告诉您在每个方法中花费的时间来告诉您哪些查询占用的时间最多。一旦得到了这一点,您就可以使用数据库查询优化

这是一个开放式的面试问题。我不能得到一个满意的答案。 问题是:


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

我认为答案的第一部分是,无论代码语言是什么,您都可以使用探查器来首先验证瓶颈在SQL查询中,而不是在某些处理中。分析器还可以通过告诉您在每个方法中花费的时间来告诉您哪些查询占用的时间最多。一旦得到了这一点,您就可以使用数据库查询优化器来解决问题。

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

太开放了,但是有一些事情你可以尝试:

  • 确保您正确理解客户的要求

  • 确保您了解性能瓶颈在当前设置中的位置

  • 确保中的查询具有正确的索引 心意

  • 优化DB模式,必要时取消规范化以避免连接

  • 在适用的情况下,探索缓存和预计算结果作为一个选项,这样您就不必首先查询数据库

  • 如果探索了所有技术途径,或者时间和精力太多,则在必要时与客户重新设定期望值


    • 太开放了,但有几件事你可以试试:

      • 确保您正确理解客户的要求

      • 确保您了解性能瓶颈在当前设置中的位置

      • 确保中的查询具有正确的索引 心意

      • 优化DB模式,必要时取消规范化以避免连接

      • 在适用的情况下,探索缓存和预计算结果作为一个选项,这样您就不必首先查询数据库

      • 如果探索了所有技术途径,或者时间和精力太多,则在必要时与客户重新设定期望值


        • 哼……我会尝试隔离每个“步骤”,并查看每个步骤执行所需的时间。我将首先通过使用探查器运行跟踪来关注SQLs,因为它们通常需要更长的时间来运行。一旦我有了这些值,我将决定下一步。如果我看到Db只负责10%的执行时间,我说不出我会100%关注数据库。例如,我会尝试隔离每个“步骤”,并查看每个步骤执行所需的时间。我将首先通过使用探查器运行跟踪来关注SQLs,因为它们通常需要更长的时间来运行。一旦我有了这些值,我将决定下一步。如果我看到Db只负责10%的执行时间,我说不出我会100%地关注数据库,例如,

          +1 Profile,Profile,Profile。作为一名软件工程师,在你真正找到解决方案之前,你需要数据。我想当它说需要90秒而不是10秒时,这意味着确实出了问题。也可能是因为客户的计算机内存很小。我想这确实会带来下一部分的答案,如果你没有发现任何明显的问题,那么考虑到问题或系统的限制,客户的期望可能是不正确的。+1配置文件,配置文件,配置文件。作为一名软件工程师,在你真正找到解决方案之前,你需要数据。我想当它说需要90秒而不是10秒时,这意味着确实出了问题。这也可能是因为客户的计算机内存很小。我想这确实会带来下一部分的答案,如果你没有发现任何明显的问题,那么考虑到问题或系统的限制,客户的期望可能是不正确的。