【问题标题】:SQL Server Database Optimization StrategySQL Server 数据库优化策略
【发布时间】:2013-01-08 04:01:24
【问题描述】:

我正在为医疗办公室使用 SQL Server 开始一个新项目。他们当前的数据库 (SQL Server 2008) 有超过 500,000 行,跨越 15 个以上的表。目前他们抱怨他们的数据输入应用程序生成报告和插入新数据的速度非常慢。

对于我的新系统,我正在考虑开发一种两层数据库方法,其中主要使用的 SQL Server 2012 将仅包含 3 个月的行,而第二个 SQL Server 2012 将维护系统的所有数据。这样,当用户插入新数据时,它将被输入到一个更小的系统中,当他们查询最近的数据时,查询应该执行得更快。这个系统也会有报告,但我认为报告必须从更大的数据集中生成。

我的问题如下

  1. 这样的解决方案能否提高数据库的整体性能
  2. 此解决方案是否存在任何可扩展性问题?
  3. 每晚在两台服务器之间传输数据的最佳方式是什么?

如果我的解决方案没有意义,请随时提供任何其他解决方案。

【问题讨论】:

  • 插入记录将使 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


【解决方案1】:

不要这样做。将您的应用程序拆分为多个数据库将是一场管理噩梦。另外,假设记录大小合理,50 万条记录也不算多。

相反,追求低垂的果实。打开日志记录并查看访问模式。哪些查询很慢?找出原因。他们缺少索引吗?可以简化查询吗?调试问题。

请记住,有时将硬件用于解决问题是正确的解决方案。如果你能用 800 美元的服务器解决问题,那就去做吧。这比你的时间便宜很多。

【讨论】:

  • 谢谢。经过进一步调查,报告生成似乎很慢,sql查询(在查看分析器后)移动得相当快。
【解决方案2】:

插话:50 万条记录并没有那么大。您应该能够像通过一些调整一样使数据库非常快速地工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-16
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多