SpecialOffers
と呼ばれる特別オファーアイテムのテーブルとテーブルSOItems
があり、特定のアイテムが見つかったら特別オファーを取得したいので、最初にこれを行いました:
IF EXISTS(SELECT * FROM SOTtems WHERE ItemType = 2 AND Itemid = @id)
BEGIN
INSERT INTO #SO
SELECT * FROM SpecialOffers so
INNER JOIN SOItems soi ON so.Id = soi.SpecialOfferID
WHERE soi.ItemType = 2 AND soi.Itemid = @id
END
しかし、その後、INNER JOIN を取り除くために、パフォーマンスが向上すると考えたので、次のようにしました。
DECLARE @specialOfferID INT
SET @specialOfferID = (SELECT SpecialOfferID FROM SOTtems WHERE ItemType = 2 AND Itemid = @id)
IF @specialOfferID IS NOT NULL
BEGIN
INSERT INTO #SO
SELECT * FROM SpecialOffers so
WHERE ID = @specialOfferID
END
したがって、より多くのSQLクエリを実行するか、この例と一般的に結合を使用するのに、どちらがより効率的でパフォーマンスが優れていますか
注:私が書いているストアドプロシージャでは、これを6回以上行う必要があるため、uに尋ねました:)
ありがとう