【发布时间】:2013-01-08 04:01:24
【问题描述】:
我正在为医疗办公室使用 SQL Server 开始一个新项目。他们当前的数据库 (SQL Server 2008) 有超过 500,000 行,跨越 15 个以上的表。目前他们抱怨他们的数据输入应用程序生成报告和插入新数据的速度非常慢。
对于我的新系统,我正在考虑开发一种两层数据库方法,其中主要使用的 SQL Server 2012 将仅包含 3 个月的行,而第二个 SQL Server 2012 将维护系统的所有数据。这样,当用户插入新数据时,它将被输入到一个更小的系统中,当他们查询最近的数据时,查询应该执行得更快。这个系统也会有报告,但我认为报告必须从更大的数据集中生成。
我的问题如下
- 这样的解决方案能否提高数据库的整体性能
- 此解决方案是否存在任何可扩展性问题?
- 每晚在两台服务器之间传输数据的最佳方式是什么?
如果我的解决方案没有意义,请随时提供任何其他解决方案。
【问题讨论】:
-
插入记录将使 DB OLTP 和生成报告将使 DB OLAP。两种要求的索引策略非常不同。
-
500.000 行? 15张桌子?好吧,任何少于一百万行的东西都是很小的——15 张桌子就是个笑话。尝试 10 亿行,每天添加 4000 万行,200 个表。你知道什么是索引吗?这可能是减缓速度的一件事——没有索引。
-
如果问题是报告生成缓慢,那么您应该专注于找出原因。将 Sql Server Profiler 与 Database Engine Tunine Adviser 一起使用是实现此目的的好方法。有时,一个小的索引可以产生巨大的影响。请参阅我关于“数据库优化初学者指南”foliotek.com/devblog/… 的帖子
-
@Narnian 谢谢你的博客很有帮助
标签: sql-server database sql-server-2012