簡體   English   中英

身份插入-效果

[英]Identity insert - performance

我有一個解決方案,可以在其中使用GUID而不是Identity的行中插入行。 該Guid在c#中生成。

我有另一個解決方案,其中表,索引等是相同的,但是我使用身份並讓Sql-server生成它們,而不是GUID。

在后一種情況下,我遇到性能問題。

編輯

我真的很抱歉! 我回到家,安裝了探查器,發現我正在比較蘋果和梨。。。 我正在調用不同的SQL。 現在,持續時間大致相同。

老實說,我希望性能問題以GUID為標識。 使用guid時,如果使用newid()而不是newsequentialid(),則有可能進行頁面拆分,因為新記錄將插入表的中間而不是末尾。

為了幫助您解決問題,我們首先需要有關您的配置和性能指標的更多信息。

環境:

  • 您正在運行哪個版本的SQL Server?
  • 什么是CPU和RAM規格?
  • 您的存儲子系統的配置是什么?
  • 提供表模式的和關聯的索引定義。
  • 提供測試代碼,演示如何執行插入。

性能:

  • 在插入期間,您在服務器上看到的是哪種wait_types ,即SQL Server正在等待什么資源? 您是CPU綁定/磁盤綁定還是頁面爭用。
  • 根據使用Identity Vs GUID運行測試的時間,wait_types是否有所不同?

初始假設/推測:

執行身份插入時,您可能會看到頁面爭用,因為索引中的前列不斷增加,所以競爭資源將成為B樹中的最后一頁。

當然,這只是一個理論,直到我們為您提供更多細節為止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM