[英]SQL Server insert slow
我有兩個安裝SQL Server 2008的服務器
當我嘗試執行大約35.000次插入的腳本時,在測試服務器上我需要30秒,而不是在生產服務器上超過2分鍾! 有誰知道為什么會出現這種差異? 我的意思是,DB的配置方式相同,生產服務器也有RAID配置,更好的處理器和內存......
謝謝!
服務器上的索引和填充是什么? 您可能需要在頁面中使用更多空間重建索引和/或考慮您確實需要哪些索引。 如果要快速測試,請嘗試ALTER INDEX ALL ON dbname.dbo.tablename REORGANIZE.
還要考慮生產服務器上的用法。 在您的測試中,您(或極少數)可能是唯一一個讀/寫的人。 在進行此插入操作時,請了解數據庫中的其他操作。
如果這兩個都失敗了,請在生產服務器上運行一些監視,看看它是否被其他進程猛烈抨擊。
也許其他一些程序正在生產服務器上運行,這些服務器正在消耗硬盤和處理器等資源。
同樣在生產服務器上,當您在DB上執行操作並且正在執行某些查詢的同時執行腳本時。
有三個(高級別)問題需要考慮:
我認為第三點可能是你的問題。 意識到您放置在表中的(非聚集的)索引越多(它們越復雜),數據操作就越慢。 索引(通常)是查詢速度和修改速度之間的折衷。 顯然,這是一種概括,總是需要調整,但總的來說這是正確的。
比較兩個環境中的數據量; 如果生產環境的數量更多(或者你的表格被高度索引),那么這很可能是你的問題。
真的很難說。
首先 - 是的,生產可能有更多的資源,但它們是否可用? 或者當你點擊它時,生產已經接近其他東西的限制? 畢竟,這是生產。
這就像我的第一個想法。
如果您同時在數據庫上進行選擇,請確保使用“with(nolock)”完成
兩台服務器中現有數據的數量是多少?
INSERT的時間將根據表中已有的行數和索引數量而擴展。 如果測試服務器表在INSERT之前包含的行數少於生產服務器,則INSERT將在那里執行得更快。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.