如何比较 sql 服务器查询性能
How to compare sql server query performance
我有两种方法可以从 sql 服务器
获取结果
第一种方式
select * from my_view where key='key'
第二种方式
select * from my_function('key')
这两种方式做同样的事情。
实际上数据库的大小很小,所以执行时间太短,我不能告诉 一个需要更少的时间,但我不确定如果数据库增长它们是否仍然相同
所以我的问题是:有什么方法或免费工具可以比较两个查询的确切执行时间吗?
key='key' 总是更快或相同。切勿对列名使用函数(如果适用,请对条件中的值使用函数,例如:key=function('key'))。如果这样做,SQL 服务器无法对查询使用任何优化(例如,索引将被忽略)。
为确保查询在 table 增长时保持其性能水平,您必须在列上设置索引。
您可以从 SQL Server Management Studio 中的执行计划推断出性能(当您在启用包含实际执行计划的情况下执行查询时 - Ctrl+M)。您还可以启用包含统计信息 (Ctr+Alt+S) 以查看一些性能信息。
如果您 运行 批量查询多个(一个查询 window)并启用 "Include Actual Execution Plan",它会给每个查询一个 "relative cost to the batch"。
因此,如果您的批次中有两个,如果一个小于 50%,那么它比另一个快。
我有两种方法可以从 sql 服务器
获取结果第一种方式
select * from my_view where key='key'
第二种方式
select * from my_function('key')
这两种方式做同样的事情。 实际上数据库的大小很小,所以执行时间太短,我不能告诉 一个需要更少的时间,但我不确定如果数据库增长它们是否仍然相同
所以我的问题是:有什么方法或免费工具可以比较两个查询的确切执行时间吗?
key='key' 总是更快或相同。切勿对列名使用函数(如果适用,请对条件中的值使用函数,例如:key=function('key'))。如果这样做,SQL 服务器无法对查询使用任何优化(例如,索引将被忽略)。
为确保查询在 table 增长时保持其性能水平,您必须在列上设置索引。
您可以从 SQL Server Management Studio 中的执行计划推断出性能(当您在启用包含实际执行计划的情况下执行查询时 - Ctrl+M)。您还可以启用包含统计信息 (Ctr+Alt+S) 以查看一些性能信息。
如果您 运行 批量查询多个(一个查询 window)并启用 "Include Actual Execution Plan",它会给每个查询一个 "relative cost to the batch"。
因此,如果您的批次中有两个,如果一个小于 50%,那么它比另一个快。