Gen*_*нин 9 index database-design sql-server azure-sql-database
早些时候,对我来说,关于是否(总是)使用/避免聚集索引的辩论/讨论没有定论。
好吧,我知道它们有时会在适当的+特定目的和上下文中使用。
“SQL Azure 不支持没有聚簇索引的表。一个表必须有一个聚簇索引。如果一个表是在没有聚簇约束的情况下创建的,那么在允许对该表进行插入操作之前必须先创建一个聚簇索引”
不符合先前的结论、理由和解释。
我在前面的解释中遗漏了严格要求无任何例外地普遍存在的聚集索引的基本原理是什么?
Rem*_*anu 11
阅读SQL Azure 内幕:
SQL Azure 为应用程序数据存储提供逻辑数据库。实际上,每个订阅者的数据实际上都存储了多次,并在分布在单个数据中心的三个物理服务器上的三个 SQL Server 数据库中复制。许多订阅者可能共享同一个物理数据库。
需要集群密钥,以便您的数据的三个副本可以保持同步。没有密钥,不可能知道哪些行被更新。堆(无 oa 聚集索引的表)只有物理“键”(fileid:pageid:slot),并且由于逻辑数据库的 3 个副本与其他逻辑数据库共享物理数据库,因此一台服务器上的物理地址在另一台服务器上没有意义副本,因此不可能复制堆。
Azure 是一个基于远程服务器的分布式云系统。数据可能存储在多个驱动器/服务器上,并且在堆上执行此操作效率极低(因为系统需要知道要检查哪台机器,并且如果没有聚集索引,这是一项资源密集型操作) 。
聚集索引提供对表上所有行和所有其他索引的查找,因此如果没有聚集索引,azure 中的每个操作都将是跨多台计算机的表扫描。
| 归档时间: |
|
| 查看次数: |
1251 次 |
| 最近记录: |