Sql-Server

關於似乎更好的查詢的記憶體授予警告?

  • March 11, 2020

好的,我正在考慮可能減少這種情況(因為更多的是練習而不是需要提醒你),並且似乎我收到了關於似乎是性能更好的查詢而不是需要更多記憶體來執行的查詢的警告?這很奇怪還是我只是想多了?

有人想在這裡教育我(對不起大圖)?

第一次查詢並將滑鼠懸停在:

   UPDATE c SET c.scust_phone = cc.scontract_holder_hphone
   FROM #Claims c 
   INNER JOIN SCS.scs_auto_sra.scs_contracts cc ON c.icontract_id = cc.icontract_id ;

在此處輸入圖像描述

第二個查詢並將滑鼠懸停在:

   UPDATE c SET c.scust_phone = cc.scontract_holder_hphone
   FROM #Claims c 
   INNER JOIN 
       (
           SELECT icontract_id, scontract_holder_hphone 
           FROM SCS.scs_auto_sra.scs_contracts cc 
           WHERE EXISTS (SELECT icontract_id FROM #Claims x WHERE x.icontract_id = cc.icontract_id )
       ) cc ON c.icontract_id = cc.icontract_id ;

在此處輸入圖像描述

實際上,過多記憶體授予的警告使用了硬編碼邏輯。當分配的記憶體的某個百分比未使用但不考慮浪費的記憶體量時,它會發出警報。

它不能被“信任”,如果像在這種情況下,它只有 1Mb 被分配而不被使用,你不應該擔心它。

我見過這樣的情況(已分配 1Mb,未使用 1Mb)以及分配 256Mo 和使用 136Mo(因此未使用 120Mo)但沒有警告的情況。

引用自:https://dba.stackexchange.com/questions/261715