hel*_*986 4 database sql-server
我从来没有对表进行过分区,但是从我所读到的内容来看,它在查询和归档数据方面有很多优势。
它是否优于创建索引?有什么缺点吗?花在分区上的时间是唯一的成本吗?
对表进行分区有两个原因 - 如果它非常大,或者如果您需要快速添加或删除数据切片。
在不同的大型审计表上,您可能会发现将表划分为每月分区很有用。这样,当您搜索给定月份的行时,SQL Server 只需查看与该月份关联的分区。执行选择时,您可以将分区视为典型表 - 不需要特殊语法。
如果在新的月份开始时,您可能想要删除最旧的月份并添加最新的月份,那么删除分区和添加分区是一个简单的操作。SQL Server 不必重建整个表上的索引——它只是在内部删除和添加分区作为元操作,通常需要几秒钟。
这样做的 SQL 并不难,您可以安排备份单个分区。但是 SQL Server 中的分区仅适用于企业版,并且无法将分区表还原到其他版本的 SQL Server。
小智 5
背景:
如果大部分操作发生在内存中,则数据库查询的延迟将会很低。数据库竭尽全力自动执行此操作。他们还提供调整选项,以确保您的缓冲区高速缓存/缓冲池和其他选项可以正确设置。
为什么要对表进行分区?
当我们不断向表中添加行时,表上的主键索引和任何其他索引的大小也会增加。一旦它们增长到整个索引不适合配置的缓冲区大小(存储经常访问的页面的位置),数据库引擎将不得不从磁盘获取索引页面,从而减慢查询速度。
它并不优于或劣于索引,而是一种不同的技术。
在走分区路线之前
分区的优点
缺点