|
|
1
37
分析器跟踪使其更具洞察力。
查询B正在使用并行性:CPU>持续时间 例如,查询使用2个CPU,平均每个CPU 1.15秒 查询A可能不是:CPU<持续时间 这就解释了相对于批处理的成本:对于更简单、非并行的查询计划,成本为17%。 优化器计算出查询B更昂贵,并且将从并行性中受益,即使这样做需要额外的努力。 不过请记住,查询B在一秒钟左右的时间里使用了2个CPU的100%(因此4个CPU为50%)。查询A在1.5秒内使用了单个CPU的100%。 查询A的峰值较低,但持续时间增加。 只有一个用户,谁在乎呢?100,也许会有所不同。.. |
|
|
2
16
查看消息选项卡,它看起来像这样:
|
|
|
3
5
优化器试图通过查看您的查询和数据统计数据、尝试几个执行计划并选择成本最低的计划来选择最佳查询计划。 Here 你可以阅读更多关于它如何做到这一点的详细信息。 正如你所看到的,这可能与你实际得到的结果有很大不同。 当然,唯一真正的查询性能指标是查询实际需要多长时间。 |
|
|
4
4
使用
在你的询问之上。 在结果选项卡下方,您可以看到一个消息选项卡。在那里您可以看到时间。 |
|
|
5
3
查询执行时间:
查询输出如下:
要优化查询成本,请执行以下操作: 点击您的SQL管理工作室
运行查询,然后单击查询结果的“消息”选项卡旁边的“执行计划”。你会看到
|
|
6
2
我明白这是一个老问题,但我想添加一个例子,说明成本相同,但一个查询比另一个查询更好。
正如您在问题中所观察到的,执行计划中显示的百分比并不是确定最佳查询的唯一标准。在下面的示例中,我有两个查询执行相同的任务。执行计划显示两者都同样好(各50%)。现在,我使用以下命令执行查询
在以下示例中,查询1使用
另请阅读 When is a Seek not a Seek? 保罗·怀特 查询
统计IO
执行计划
|
|
|
giantjenga · 优化整数向量到二进制向量的转换 1 年前 |
|
|
Daniel Lobo · 使用约束进行优化 1 年前 |
|
Sergio · python中大量数字的乘法 1 年前 |
|
|
Sergey Dev · 临时表与表变量 1 年前 |
|
|
John · 减少C中的内存消耗++ 2 年前 |