我在 SQL Server 中存储了 500GB 的数据库。由于数据库太大,更新和插入数据需要时间。现在的情况是我想对数据进行分区。那么我应该使用哪种分区技术?或者还有其他可以提高我的性能的技术吗?
答案1
性能问题不会出现在整个数据库中,而是出现在单个表和查询中。
您首先要确定哪些表速度慢。哪些表速度慢,以及原因。是否与 I/O 有关?如果是,如果您被困在同一个 I/O 子系统上,分区可能无济于事。如果是页面拆分,则检查该问题。查看您的聚集索引或填充因子是否以不优化性能的方式设置。
分区是企业独有的功能。您有这个功能吗?如果没有,请另寻他路。
也许您可以调整查询,甚至 INSERT,以获得更好的性能。
答案2
如果不知道数据库模式就不可能知道。
有多少个表?有多大?规范化程度如何?索引呢?
确实有很多这里要考虑的事情。
500 GB 的数据库并不是什么大问题本身,只要其结构合理。
但是如果您有一张包含 100 列 VARCHAR(MAX) 类型的大表……那就没有什么可以帮助您了。
答案3
有一些工具可以帮助你进行分区。以下是一个例子:
http://www.donwellsoft.com/Default.aspx
其他可以提高性能的因素:
- 更快的磁盘
- 检查索引
- 日志文件放在单独的磁盘上
- 单独磁盘上的索引