2013-01-08 62 views
3

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

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

我的问题如下

  1. 将这样一个解决方案提高数据库
  2. 是否有可扩展性的担忧与此解决方案的整体表现?
  3. 每晚在两台服务器之间传输数据的最佳方式是什么?

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

+0

插入记录将使数据库OLTP和生成报告将使数据库OLAP。这两种要求的索引策略是非常不同的。 – Raj

+2

500.000行? 15桌?好吧,任何少于一百万行都很小 - 而15个表是一个笑话。尝试10亿行,每天增加4000万,200张表。你知道索引是什么吗?这可能会减慢它的速度 - 没有指数。 – TomTom

+0

如果问题在于报告生成缓慢,那么您应该专注于找出原因。使用Sql Server Profiler和数据库引擎Tunine Adviser是一个很好的方法。有时候一个小指数可以产生巨大的差异。查看我的文章“数据库优化初学者指南”http://www.foliotek.com/devblog/sql-server-database-optimization-a-beginners-guide/ – Narnian

回答

7

不要这样做。将您的应用程序拆分为多个数据库将成为管理噩梦。另外,假设记录的大小合理,500k条记录并不多。

取而代之的是追求低垂的果实。打开日志并查看访问模式。哪些查询很慢?找出原因。他们缺乏索引吗?查询可以简化吗?调试问题。

请记住,有时在问题中投掷硬件是正确的解决方案。如果您可以使用800美元的服务器解决问题,请执行此操作。这比你的时间便宜很多。

+0

谢谢。看起来在进一步调查后,报告生成似乎很慢,sql查询(在查看剖析器之后)正在相当快地移动。 –

0

给钟声:500K记录不是那么大。你应该能够使数据库非常快速地工作,就像进行一些调整一样。