我是sql server的新手。我使用sql server express 2014.我从来不必处理索引。
我已经制作了以下表结构来试验索引
鉴于该表应该存储学生为每个作业评分的分数,讲师可能想要过滤分配ID上的数据,以便查看例如在特定作业中得分最高的人。
以下屏幕截图显示了我创建的查询和非聚集索引。然而,执行计划表明它没有被使用为什么?
这是定义
答案 0 :(得分:0)
索引与查询匹配,但表格非常小。扫描它访问其唯一的页面。使用索引可以访问两个页面。
使索引覆盖或添加更多数据。两者都是尝试索引并理解它们的好方法。你应该尝试两种方式。
答案 1 :(得分:0)
如果您有少量数据,例如此处的5行,则实际上并未使用索引,因为整个数据很可能只有1页。因为您选择“*”,所以必须访问整个页面,因为非聚集索引只包含其中的键,因此使用索引获取该页面可能会贵一倍。
通过首先运行“set statistics io on”,您可以测试使用和不使用索引的页数。运行语句时,您将在“消息”选项卡中看到页数。要在使用索引时进行比较,您可以运行“select * from Submissions with(index(index_name_here)),其中AssignmentID = 2”