今天查了下,發現網上的沒有一個sql語句寫的好的。
判斷記錄是否存在,要不是語句不夠簡潔,要不就是性能有很大問題。
我進行了優化后,最簡潔簡單性能最優的的sql語句,用來判斷表中的記錄是否存在:
select isnull((select top(1) 1 from tableName where conditions), 0)
結果為 1,則說明記錄存在;結果為 0,則說明記錄不存在。
網上的常見的有問題的語句:
錯誤1:
select COUNT(*) from tableName where conditions
count(*) 計算會對聚集索引進行掃描和計算,reads 特別多,特別是 cpu 資源占用極大。
錯誤2:
if exists (select * from tableName where conditions) select '1' else select '0'
這種方法稍微有點靈性,但是卻很不簡潔。
同時由於 select * 前面有 exists ,所以該語句並沒有性能問題,只是語法不夠簡潔
本文禁止任何網站轉載,嚴厲譴責那些蛀蟲們。
本文首發於,博客園,請搜索:博客園 - 尋自己,查看原版文章
本文首發於,博客園,請搜索:博客園 - 尋自己,查看原版文章
