加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server-2008 – SQL大表设计

发布时间:2021-01-08 07:29:28 所属栏目:MsSql教程 来源:网络整理
导读:我有一个关于SQL Server 2008表设计的一般问题.我们目前有一张超过600GB的桌子,每天增长约3GB.此表具有适当的indecies,但在运行查询时仅因其大小而成为主要的挂起.问题是我应该按年和月将表拆分成多个表(这适用于其他部门如何拆分其大型数据集),还是应该利

我有一个关于SQL Server 2008表设计的一般问题.我们目前有一张超过600GB的桌子,每天增长约3GB.此表具有适当的indecies,但在运行查询时仅因其大小而成为主要的挂起.问题是我应该按年和月将表拆分成多个表(这适用于其他部门如何拆分其大型数据集),还是应该利用SQL Server内置的分区.似乎使用分区将需要更少的代码更改.从我在分区时读到的内容,您仍然只查询一个表,服务器处理如何获取数据.如果我们进入多表路由,我们将不得不处理从多个表中提取数据.

解决方法

“这个表有适当的缺点,但在运行查询时成为主要的挂断”

除非SQL Server能够在运行查询时消除分区,否则单独进行分区无助于查询性能.您的WHERE子句需要与您的分区方式对齐.我们只使用一个字段作为分区字段,因此如果WHERE子句中不包含该字段,尽管有分区,您仍然可能会扫描整个表.

“而且仅仅是因为它的大小.”

分区可以使某些维护操作更容易,但仍然有一些我们无法在逐个分区的基础上做的事情.如果索引维护和统计信息更新导致问题,最好将设计拆分为归档表和实时更新表.当您需要定期将数据从实时表移动到存档表时,可以执行此操作,使用100%填充因子重建索引,使用完全扫描更新统计信息,然后将其文件组设置为只读.分区可以帮助归档表加载 – 但是分区活动表可能不会. (我在这里抛出了几个高级概念,好像它快速而简单,但我只是在这里勾勒出一些背景.)

“似乎使用分区将需要更少的代码更改.”

Sorta有点 – 乍一看它看起来很那么,但你进入它的次数越多,你就有了分区视图等选项.您可以重命名现有表,将视图放在其位置,然后您可以对基础表进行自己的更改(并添加多个表),而无需更改应用程序.

我在这里写了更多关于分区的陷阱:

http://www.brentozar.com/archive/2008/06/sql-server-partitioning-not-the-answer-to-everything/

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读