0
假設我有[User]表,並且我想檢查電子郵件是否存在於該表中。以下兩個查詢之間是否有區別?哪一個執行速度快,爲什麼?SELECT查詢的性能檢查表中是否存在記錄
選項1:
DECLARE @EXIST as bit
SELECT TOP 1 @EXIST = 1
FROM [dbo].[User]
WHERE UserEmail = N'[email protected]'
選項2:
DECLARE @EXIST as bit
SELECT @EXIST = 1
FROM [dbo].[User]
WHERE UserEmail = N'[email protected]'
我認爲選擇1可能是因爲TOP 1的速度更快,但不能完全確定,因爲我不是SQL專家。
很容易,只要看執行計劃 – lad2025
添加這對您的測試: 'IF EXISTS(SELECT 1從[DBO] [用戶] 其中useremail = N'[email protected]')SET @EXIST = 1'。 –
TOP 1可能需要排序。它也將取決於用戶/用戶電子郵件列上的索引。除此之外,那裏的數據庫類型不會有太大的改進。 – Pieter21