Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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 server 2005编制索引的帮助吗_Sql_Sql Server_Tsql_Sql Server 2005_Indexing - Fatal编程技术网

需要有关使用SQL server 2005编制索引的帮助吗

需要有关使用SQL server 2005编制索引的帮助吗,sql,sql-server,tsql,sql-server-2005,indexing,Sql,Sql Server,Tsql,Sql Server 2005,Indexing,我有一个表,paymentdetails,其中有一列paymentstatus(有一个支票约束,将值限制为paid或pending)。此外,还有一个表patientdetails,其中包含patientid、address……列 我想创建一个索引,以加快提取每个初始付款待定患者的患者详细信息的执行。首先编写查询。看看这个查询关心什么 您需要在连接中涉及的任何键上、where子句中的键上以及可能在最重要地通知结果集的表的主键上建立索引(可能使用INCLUDE使结果集中的其他列在不命中表的情况下可用

我有一个表,
paymentdetails
,其中有一列
paymentstatus
(有一个支票约束,将值限制为paid或pending)。此外,还有一个表
patientdetails
,其中包含patientid、address……列


我想创建一个索引,以加快提取每个初始付款待定患者的患者详细信息的执行。

首先编写查询。看看这个查询关心什么

您需要在连接中涉及的任何键上、where子句中的键上以及可能在最重要地通知结果集的表的主键上建立索引(可能使用
INCLUDE
使结果集中的其他列在不命中表的情况下可用)

“过滤索引”(出于某种未知原因,SQLServer术语表示部分索引)是不错的,但SQLServer自2008年以来才有了这些索引

但前者是理论,后者只是一个很好的了解,直到你开始使用2008年。对如何执行查询的实际检查是真实的


还要考虑这样一个事实,即索引会加快其他选择,以及更新和删除的WHERE部分,但会稍微减慢更新、删除和插入的速度。因此,您不想疯狂地将索引放在任何地方,但您确实希望特别关注那些最有可能用于其他查询的索引。

我建议的第一件事是为外键列编制索引。但是要知道索引不能确保性能的提高,并且会对插入/更新产生负面影响。