0
我有一個用C#編寫的SP,它可以在大約200萬行上進行計算。計算大約需要3分鐘。對於每一行結果都以三個數字的形式生成。 這些結果被插入臨時表中,後來以某種方式進行處理。 結果以大塊形式添加,插入有時需要超過200分鐘(是的,超過3小時!)。有時需要「僅」50分鐘。 我修改了它,所以結果一直保存在內存中,然後整個2百萬在一次事務中被轉儲到一個循環中。仍然 - 大約需要20分鐘。 使用事務開始/提交在SQL中編寫的類似循環只需不到30秒。 任何人都有一個想法問題在哪裏? 處理2百萬(所以選擇它們等)需要3分鐘,將結果插入最佳解決方案20分鐘。 更新:此表在標識列上有一個聚簇索引(以確保最後物理附加行),沒有觸發器,沒有其他索引,沒有其他進程正在訪問它。從CLR中插入行的性能存儲過程
無外鍵或任何約束,對標識列簇索引(確保所有記錄在末尾追加) 未有此表上不僅如此類型的觸發器,而沒有其它索引,沒有其他進程訪問該表。這是臨時表,稍後用於更新原始表,並顯示2百萬行。 – 2012-03-13 18:11:26