2017-03-28 8 views
1

例でSQL Server 2008でストアドプロシージャを作成:は、BEGINとEND

ALTER PROCEDURE [dbo].[SampleTable] 
AS 
BEGIN 
    BEGIN 
    WITH 'Test' AS 
    (
     SELECT * FROM dario1 
     UNION ALL 
     SELECT * FROM dario2 
     UNION ALL 
     SELECT * FROM dario3 
    ) 
    END 

    IF select Column1 = 1 FROM Test 
    BEGIN 
     --another commands.. etc.. 
    END 

    IF select Column1 = 2 FROM Test 
    BEGIN 
     --another commands.. etc.. 
    END 

    IF select Column1 = 3 FROM Test 
    BEGIN 
     --another commands.. etc.. 
    END 
END 

私のコードを気にしないでください、これが唯一のほんの一例です。

私の質問は:BEGINENDメモリの消費を最適化するのに役立ちますか?私は3つのテーブルを持っていて、私の記録は何百万というものですが?

私はまだBEGINENDを使用して混乱しています。

任意の答えが理解されるであろう。.. :)

答えて

3

が開括弧と同様であり、C#({})で括弧を閉じBEGINおよびENDグループ異なるSQLたstatmentsに使用されるそのわずか論理ブロック論理コードブロックを示すために使用されます。メモリ消費には影響しません。

+1

私はここにあなたの仕事を励ますためにあなたにアップフォートを与えました。気をつけてください –

+0

ありがとうございます。私のために働いた。 –

0

いいえ、MSDNあたりとして、BEGINENDは、制御の流れ言語のキーワードです。これらは、メモリ消費モデルではなく、論理コードブロックを示すためにのみ使用されます。同じ注記でも、それらはトランザクションのアトミック性には影響しません。

+0

ご意見ありがとうございますので、基本的にメモリの最適化はクエリとインデックスに依存しますか? –

+0

@dario正しいもの、とりわけ – bc004346

+0

@dario受諾可能な回答の1つが見つかった場合は、アップアップして回答を受け入れてください。 – bc004346

0

いいえ、BEGINとENDはメモリ消費とは関係ありません。

+0

メモリ消費を最適化するための提案はありますか?おかげで仲間 –

関連する問題