【问题标题】:Define what indexing data structure/algorithm SQL Server uses?定义 SQL Server 使用什么索引数据结构/算法?
【发布时间】:2011-12-08 17:38:57
【问题描述】:

有没有办法告诉 SQL Server 使用什么数据结构/算法来建立索引?

换句话说,您能否告诉它使用散列、b-tree 或不同的 b-tree 基值来降低内存密集度?

我的问题是,我有一个 12TB 的数据库想要使用 1TB 的 RAM 进行索引,但盒子里只有 192GB 的 RAM。 SQL Server 进行了一些内存管理,数据库最终崩溃,磁盘 I/O 队列变得很高,等等。可能是由于交换。我想使用索引,但我相信默认的 btree 索引内存太重。根据回复,我可能还会发布一个后续问题。谢谢。

【问题讨论】:

  • 简而言之:没有。这是 SQL Server 内部的东西,据我所知,没有任何旋钮或设置可以影响 SQL Server 内部的这些基础知识。

标签: sql-server indexing clustered-index


【解决方案1】:

我想我盯着这个问题看了一会儿,试图理解你在问什么。直到我恍然大悟:你有没有适当索引的大表,你的查询总是触发表扫描。这会导致高 IO 负载。

我建议您按照Waits and Queues 方法来识别瓶颈。是一种经过验证的方法,SQL 客户咨询团队 (SQLCAT) 在其调查中使用。一旦确定了瓶颈,请在此处询问如何克服它们。

但首先,您需要使您对 SQL Server 和一般数据库概念的理解略高于您的问题所揭示的内容。我强烈建议您在继续之前阅读 MSDN 上的这些主题:

【讨论】:

  • 谢谢。这是我继承的数据库,他们希望保持垂直。
  • 我愿意接受您的意见作为答案,但是关于我的实际问题,能否给我一个是或否或什么?谢谢。
猜你喜欢
  • 1970-01-01
  • 2013-08-30
  • 1970-01-01
  • 1970-01-01
  • 2017-08-07
  • 2012-02-02
  • 2012-05-30
  • 1970-01-01
  • 2020-11-14
相关资源
最近更新 更多