繁体   English   中英

与使用WHERE子句有关的性能问题

[英]Performance issue related to using WHERE clause

我在这里面临一个SQL语句的问题,该语句根据类别从名为News的表中获取数据:News:Id(PK)int,标题字符串,主题字符串,Uid int,Cid int。

SELECT Id, Subject, Uid, Title FROM News WHERE Uid = @Uid

与不带WHERE的语句相比,该语句的运行速度较慢,因为它应该去检查每一行以确保它满足条件。

如此与我一起想象表新闻有1000万条。 我该怎么办?

如果Id列是可能已经聚集的主键(默认情况下它们是默认键),则只需要在Uid列上创建非聚集索引-特别是Uid列是uniqueidentifier(GUID)数据类型。

这可以通过运行以下SQL创建:

创建NONCLUSTERED索引IX_News_Uid ON新闻(Uid)

您应该为Uid列创建索引,其中IdSubjectTitle为包含列。

这样,数据库可以只使用索引来运行查询,而根本不必触摸表。

应该可以在Uid列上创建聚簇索引 这样可以提高性能。 注意:每个表只能有一个聚集索引列。

我会在Uid上创建一个唯一索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM