我有 try{
int num[]={1,2,3,4};
System.out.println(num[5]);
}catch(Exception e){
test.log(LogStatus.INFO/ERROR, ExceptionUtils.getStackTrace(e));
}
表的非聚集索引。
serviceregistration
查询1:
Index Name ---------------+ Column Name ----------------- + Index Type
IX_SERVICEREGISTRATION_I | SERREGNO | NONCLUSTERED
IX_SERVICEREGISTRATION_II | SERREGNO, SERCUSTID | NONCLUSTERED
IX_SERVICEREGISTRATION_III| PLACEID, JOBID, SERREGNO | NONCLUSTERED
查询2:
Select CustomerName, Place
From dbo.ServiceRegistration
Where SERREGNO = 'JAN1234' And PLACEID = 1
查询3:
Select CustomerName, Place
From dbo.ServiceRegistration
Where SERREGNO = 'JAN1234' And SERCUSTID = 'A123'
以上创建的索引是否对这些查询有用?
答案 0 :(得分:1)
IX_SERVICEREGISTRATION_I
IX_SERVICEREGISTRATION_II
在查询中使用 n最左列时,只能使用任何复合索引(由多个列组成) - 这就是查询#1和查询#的原因2可以使用索引#3。
但是索引的实际使用将取决于更多的东西 - 比如你用这个查询选择了整个表中有多少行?
没有任何查询被“覆盖”和索引 - 例如没有查询可以通过查看索引来返回您要求的值 - 这通常会限制索引的有用性。如果您要为任何索引添加INCLUDE (CustomerName, Place)
- 然后,那么它们使用的可能性就会大大提高。