Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 你能索引一个根据条目值“更改”的列吗?_Sql_Sql Server - Fatal编程技术网

Sql 你能索引一个根据条目值“更改”的列吗?

Sql 你能索引一个根据条目值“更改”的列吗?,sql,sql-server,Sql,Sql Server,所以,在我的数据库中,我有一个包含这两列的表。我有一个NoteType和一个NoteTypeID。notnotetype告诉您noteTypeId引用的是什么。这是另一个表的ID,因此我可以从注释中引用回条目。我有一个查询,我需要在这组数据上运行很多次,它目前非常慢,因为很多情况下都会做注释。noteTypeID是否可以基于noteType进行索引? 我对索引的概念相当陌生,因此我不确定。如果您经常运行以下查询: 从NoteInfo中选择NoteType,其中NoteTypeID=2900,每个

所以,在我的数据库中,我有一个包含这两列的表。我有一个NoteType和一个NoteTypeID。notnotetype告诉您noteTypeId引用的是什么。这是另一个表的ID,因此我可以从注释中引用回条目。我有一个查询,我需要在这组数据上运行很多次,它目前非常慢,因为很多情况下都会做注释。noteTypeID是否可以基于noteType进行索引?
我对索引的概念相当陌生,因此我不确定。

如果您经常运行以下查询:

从NoteInfo中选择NoteType,其中NoteTypeID=2900,每个NoteTypeID仅与一个NoteType关联,如果数据集很大,则索引可以帮助搜索性能

如果您的数据是这样构造的,那么a可能是最好的方法。这有助于数据库在Ologn时间内为传入的NoteTypeID找到相应NoteType的记录,这比遍历整个表要好


可以使用SQLServerManagementStudio或T-SQL创建索引。我可以为您复制这些信息,但是指向文档的稳定链接(格式比我在这里复制的文档好得多)来自Microsoft。

显示表结构和您所引用的查询。您正在寻找的是NoteType、NoteTypeID上的聚集索引。这将按NoteType然后按NoteTypeID对索引进行分组排序。因此,如果查询NoteType值,引擎理论上可以对note类型进行初始搜索,然后返回特定ID。在没有看到查询或数据库结构的情况下,我真正能说的就是复制表并使用索引进行测试。SQL Sentry Plan Explorer是一个免费工具,非常适合阅读执行计划。非常感谢!这正是我要找的!编辑:谢谢你的额外阅读顺便说一句,我想了解更多关于它!另外一个问题,我在这个表上已经有了聚集索引。非集群也可以接受吗?还是我必须满足于其中一个?@MasonToy表只能有一个聚集索引。聚集索引实际上是表数据本身。比如,这是表中数据的实际排序顺序,我简化了,但这就是想法。所以你只能有一个。不过,索引中可以有多个列。