【问题标题】:Is there something in SQL/Oracle to estimate program execution time before program execution? [closed]SQL/Oracle 中有什么东西可以在程序执行之前估计程序执行时间吗? [关闭]
【发布时间】:2016-02-04 15:42:28
【问题描述】:

我是 SQL/Oracle 编程的初学者。就像聚合函数计数可以用来查找否一样。结果集中的记录,我需要了解为什么某些连接查询需要大量时间才能执行。

【问题讨论】:

  • 您使用的是 SQL Server、Oracle 还是两者兼有?
  • 查询性能和理解为什么它不是最佳的是一个巨大的话题。从字面上看,有一系列关于该主题的书籍。并且解决方案在 Oracle 和 SQL Server 中非常不同。

标签: sql-server oracle execution-time


【解决方案1】:

它可能不会告诉您多长时间,但查看查询计划会让您很好地了解查询需要很长时间的原因。尤其是在较大的表上进行表扫描。

对于 Sql Server,SSMS 将允许您在不实际运行查询的情况下生成预期的查询计划,或者运行查询并显示结果以及实际使用的查询计划。 Toad for Oracle 具有类似的功能。

查询计划显示了它如何访问各个表,以及如何在它们之间建立连接,以及每个操作的“成本”的衡量标准。更高的成本需要更长的时间来运行。查询计划的完整教程比这种格式的要多一些。

【讨论】:

  • 我只想补充一点,如果您真的想学习,您可以尝试完成有关 SQL 最佳实践/优化的某种课程,或者至少阅读/查阅相关书籍。查询计划会有所帮助,但通常很神秘,或者不能说明整个故事或指导您找到正确的解决方案。如果您是 SQL 新手,那么“数据库规范化”也是值得阅读的内容,但重要的是要注意最好的解决方案(为了速度和易于访问)很少是最规范化的解决方案。
【解决方案2】:

在 Oracle 中,您可以查看视图 v$session_longops 以查看长时间运行的查询的进度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 2017-03-17
    • 1970-01-01
    • 2011-09-18
    相关资源
    最近更新 更多