小编Mat*_*ish的帖子

聚集索引与非聚集索引,类似于数组与链表?

我刚开始担任 DBA,最近对索引以及它们如何加速查询感兴趣。我在这里阅读了有关索引的信息:https : //msdn.microsoft.com/en-us/library/ms190457.aspx并试图了解 SQL Server 中聚集索引和非聚集索引之间的区别。

从我读到的内容来看,这听起来像是聚集索引对数据进行排序,因此索引总是“知道”下一个值所在的位置,就在它的旁边。这让我想起了一个具有连续内存的数组。类似地,非聚集索引听起来像一个链表,因为索引的一部分保存了值,还有一部分指向下一个索引。这是一个恰当的比较吗?

index sql-server

5
推荐指数
2
解决办法
678
查看次数

是否可以从磁盘表中实现最少记录的读取

我的代码使用将 SQL Server SPID 与 CompanyID 链接起来的表。例如

Spid|CompanyID
1   | 123
2   | 412
Run Code Online (Sandbox Code Playgroud)

每次请求到达数据库时,请求首先检查此表以获取当前用户的公司 ID,如果没有,则将其插入。

自然,这是一个非常高的流量表。我当前的实现是在内存 OLTP 中使用 SQL Server 2016 使用非持久内存表。但是,我们发现了一个与内存压力有关的错误(msft 目前正在研究它),需要远离此实现。

该表在任何给定时间仅包含约 300 条记录,并且用户很少写入该表。但每秒可能有数百次读取。

我们现在将不得不移回磁盘表,并且我不想将任何内容记录到事务日志中以读取该表。有没有办法不将任何内容记录到事务日志或最少记录到事务日志?

我查看了全局临时表,还使用了 TABLOCK 和 Minimally Logging 关键字,但这些似乎都只与高流量写入有关。

有没有办法在这里完成我想要的?

performance sql-server sql-server-2016

0
推荐指数
1
解决办法
30
查看次数

标签 统计

sql-server ×2

index ×1

performance ×1

sql-server-2016 ×1