|
|
1
2
在第一种情况下('Foo'),MSSQL认识到正在搜索的值与t1上索引的第一部分完全匹配,因此使用索引在t1中查找记录(索引搜索,可能是二进制搜索)。在t1中找到一条索引与t2完全匹配的记录后,它可以使用该索引查找t2中的记录。 在第二种情况下,(N'Foo'),MSSQL认识到它在索引和正在查找的值之间没有完美匹配,因此它不能将索引用作索引,但必须执行完整的表扫描。但是,由于索引包含所需的信息(以不同的形式),并且比完整的表小,因此它可以像扫描表一样对索引进行完整扫描(这比扫描表快,因为磁盘需要读取的页面更少;但是,它似乎比索引查找要长90倍) |
|
|
2
0
这些查询可以有一个看起来像完美格式的连接条件。但是,当您检查查询计划时,您将看到一条警告,指示“No Join Predicate”,指示所涉及的两个表没有谓词(在连接时)。向查询中添加一个选项(强制订单)将生成一个完全不同的计划,并且警告将消失(在某些情况下)。这就是你知道问题所在的原因。我看到的大多数在SQL 2000上性能更好的查询都显示了这个问题。SP 2的累积更新4应该可以解决此问题。 |
|
|
KPM · PHP和MySQL更改登录用户密码表单,不更新密码 8 年前 |
|
|
ISemsem · 如何在发出警告时中止python脚本 8 年前 |
|
|
Reilly Ford · 对警告感到困惑 8 年前 |
|
|
David Kramf · Swift警告信息不清楚 8 年前 |
|
|
Ed Mozley · 捕获powershell警告 8 年前 |