MSSQL建立全文索引后,怎么使用,直接就用吗?
发布网友
发布时间:2022-04-22 04:18
我来回答
共2个回答
热心网友
时间:2023-10-07 21:16
索引一般建在经常用来筛选的列上,用来提高查询速度。
索引不只是用在where子句中。查询优化器会根据你的查询语句选择合适的索引。建了索引后,查询速度没有变得更快,有几种常见的情况:
1. 索引不合适。例如创建了一个索引 在T表的A列和B列上,而where语句作用在只B列上。
select A, B from T where B = 100
查询需要扫描整个表才能找出 B=100的所有记录。而查询优化器会为以下查询利用索引。
select A, B from T where A = 100
2. 索引的选择性比较低,查询优化器不利用索引。
3. 在索引列上应用了函数,如你举的例子substring(A,100),使得索引列A不是SARG(Search Argument),查询优化器也不会利用索引。查询也要扫描整个表。
还有其它方面的情况。。。
尽量去掉不合适的、多余的索引,因为维护索引会影响insert, update,delete语句的效率和占用存储空间。
如果想深入了解索引,推荐你一本书《SQL Server 2005技术内幕 T-SQL查询》。
热心网友
时间:2023-10-07 21:17
首先:索引是优化查询用的,所以索引建立在经常作为条件查询的字段上,外键是属于经常作为条件查询的字段。如果基本不会作为Where条件一部分的字段就根本没有必要加索引
其次:如果几个字段固定出现在Where条件语句里,可以将这几个字段建组合索引