2013-01-08 61 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記錄不是那麼大。你應該能夠使數據庫非常快速地工作,就像進行一些調整一樣。