摘要:
在查询中使用exists来进行判断性能会高,因为exists有短路的效果,整个表不必查完,通常比IN效果来的好,现在SQL2008R2中用代码测试一下,看看结果: 首先是使用IN来查询: DBCC FREEPROCCACHECHECKPOINTDBCC DROPCLEANBUFFERSSELECT * FROM sales.salesorderheader AS soh WHERE contact... 阅读全文
摘要:
以前或多或少的听说过,能用子查询的地方改用连接查询,性能有提升,如下的伪代码 select * from tab1 where col1 in (select col1 from tab2)select * from tab1 inner join tab2 on tab1.col1=tab2.col2 这种使用连接查询代替子查询的写法,据说在SQL2000中有效果,我没有测试过,这次... 阅读全文
摘要:
有一个通常的误解,觉得应该把选择性高的字段放在最前面,这通常只是针对一个字段的索引,对于组合索引,常常要把做等式运算的字段放在最前面,看看测试 USE AdventureWorksGOCREATE TABLE demo1 ( id INT identity(1,1) PRIMARY KEY, gender char(1) NOT NULL , age int NOT NUL... 阅读全文