数据架构师: 当数据不再受欢迎
2010-06-16 00:00:00 来源:WEB开发网核心提示: 更昂贵的 SQL (第 2 部分): 你可能会想,“这个更昂贵的 SQL 问题并不是我所遇到的问题,数据架构师: 当数据不再受欢迎(2),因为我的业务事件记录表是按日期索引的,确实,将这些冷记录从数据库移除将是很好的做法,但是不能贸然行事,这样的集簇模式将冷数据表集中到表的一端,而表
更昂贵的 SQL (第 2 部分): 你可能会想,“这个更昂贵的 SQL 问题并不是我所遇到的问题,因为我的业务事件记录表是按日期索引的。确实,这样的集簇模式将冷数据表集中到表的一端,而表的另一端的页则是密集的热记录;然而,这里还有一个索引访问的小问题需要考虑。您可能知道,一个 DB2 索引逻辑结构就像是一棵倒置的树,顶部有一个根页,底部是带有索引键值和对应记录 ID 的叶子页,如果表不是非常小,顶部和底部之间就会有少量层次的非叶子页(通常是 1 至 2 层)。当一个表由于冷记录一直没有删除而增大时,最终表的一个 n 层索引将变成 n+1 层索引。当一个三层索引变成四层,通过索引的方式查询一个记录所需要访问的页数会增加 25%,从 4 个(索引根页、非叶子页、叶子页和表页)变成 5 个(外加一个非叶子索引页)。”
更多 I/O,更长的运行时间: 由于表页包含更多的冷记录(和带有冷键值的索引叶子页),缓冲池配置的效率会下降,除非缓冲池相应地增大—这是另一种开销。可使用的缓冲池减少意味着需要更多的 I/O 操作,而这会增加 SQL 语句的执行次数。
更昂贵的实用工具: 定期执行的实用工具过程,如备份和重组数据库对象和用于查询优化的更新分类统计,会随着表和索引的增大而消耗更多的 CPU 时间。
更多的硬盘空间: 显然,数据库越大,用于保存数据库对象的磁盘空间就越大。虽然硬盘存储的成本已经远低于从前,但是没有人愿意浪费这些空间。
所以,您的数据库中那些从来没有或极少被程序查询或使用的记录会增加您多前端的数据服务系统的成本。将这些冷记录从数据库移除将是很好的做法,但是不能贸然行事,您需要考虑周全。
从数据库转移到哪里?什么时候进行转移?多长时间转移一次?
更多精彩
赞助商链接