相关疑难解决方法(0)

如何确定索引是必需的还是必要的

我一直在我们的 MS SQL 数据库上运行一个自动索引工具(我修改了一个源自 Microsoft 的脚本,该脚本查看索引统计表 -自动自动索引)。从统计数据中,我现在有一个需要创建的索引的建议列表。

编辑: 上述索引从 DMV 获取信息,这些信息告诉您数据库引擎将用于索引的内容(如果它们可用),并且脚本采用 Top x 推荐(通过搜索、用户影响等)并将它们放在表中。

(上面的编辑部分摘自 Larry Coleman 的回答,以阐明脚本在做什么)

由于我是数据库管理员的新手,并且在网上进行了快速搜索,因此我不愿意冒险并盲目添加推荐的索引。但是,由于没有在该领域的经验,我正在寻找一些关于如何确定这些建议是否必要的建议。

我是否需要运行 SQL Profiler,还是检查查询表的代码更好?你还有什么建议吗?

performance index sql-server optimization

119
推荐指数
6
解决办法
13万
查看次数

我的索引是否被使用?

我正在使用 SQL 服务器,创建我们数据库的人在我们最大的表上添加了很多索引。这些索引每个只包含一个字段。

对我来说,这些索引似乎几乎没有用,这是一个坏主意。

我担心的是删除部分或全部这些索引并影响我们实时系统的性能。无法在我们的测试系统上对此进行测试,因为我们的测试系统没有相同的负载或数据量。

就是想...

  • 有没有办法确定哪些索引从未使用过?
  • 例如,是否有某种分析可以显示在一段时间内哪些索引用于哪些查询?

sql-server-2008

4
推荐指数
1
解决办法
159
查看次数

表上的更多索引会影响性能吗?

可能的重复:
索引如何影响查询性能?
如何知道何时/是否有太多索引?

  • 在语句中使用一些“where”条件说“X”报告,因此我们在表“T”上创建索引“A”。
  • 在语句中使用一些“where”条件说“Y”报告,因此我们在表“T”上创建索引“B”..
  • 在语句中使用一些“where”条件说“Z”报告,因此我们在表“T”上创建索引“C”。
  • 在语句中使用一些“where”条件说“M”报告,因此我们在表“T”上创建索引“D”。

现在有 4 个索引,这个表有大量的记录。

  1. 当我在这个表中插入或更新行时,索引会影响这些操作的性能吗?
  2. 如果是这样,那么我如何调整这些查询以使其性能良好?

performance index-tuning query-performance

2
推荐指数
1
解决办法
2万
查看次数

为新表中的每一列创建索引是个好主意吗?

我将缩短我的问题。(SQL-Server 2008)

在创建新表时,为每一列创建索引是个好主意吗?

我为什么要说这个?

今天我正在创建一个数据库,我的老板在我身后,他说:

“哦,为每一列创建一个索引很好”(然后他向我展示了这样做的图形方式)。

我现在正在研究索引,我不确定这是否是个好主意,因为每次表上有插入\更新时,每个索引都会更新。

一些建议?

index sql-server

2
推荐指数
1
解决办法
752
查看次数