在同一张表上有多个索引是一个问题,因为我只在做读调用

时间:2019-02-08 16:52:59

标签: sql sql-server sql-server-2008 indexing database-performance

查询运行的时间越来越长。尝试通过创建索引来获得一些性能。

我们有一些自动Select查询命中了Database以读取数据。我的数据库仅提供READ查询。因此,我在表上创建了一堆索引以帮助查询。我对索引的理解是: 由于我们不执行任何插入/更新/删除操作,因此拥有多个索引不会对您造成任何损害。我的问题是:由于我的数据库(MS SQL服务器)仅服务于读取调用,因此在表上具有多个索引是否存在问题。我创建的某些索引甚至都不需要。

我的期望是确保所有选择查询都使用正确的索引,并且由于使用错误的索引或缺少索引而不会遇到任何性能问题。

1 个答案:

答案 0 :(得分:0)

请记住,索引占用了硬盘上的空间,因此,每当备份数据库时,您的备份时间可能会稍长一些,并且备份量会更大。

要查看SQL Server是否认为您缺少索引,可以尝试从此处https://basitaalishan.com/2013/03/13/find-missing-indexes-using-sql-servers-index-related-dmvs/运行脚本,该脚本使用内置的DMV确定哪些索引丢失。

您还可以查看单个查询,以查看是否可以通过在SQL Server Management Studio中打开查询并按Ctrl_L(显示查询计划)来改进它们。

所有这些都适用于未更新的数据库。如果是索引,可能会减慢插入和更新的速度。