sql >> データベース >  >> RDS >> Sqlserver

SQL Server、切り捨てを伴う一時テーブル vs 削除を伴うテーブル変数

    次のスクリプトを実行すると、テーブル変数 より良い選択肢です

    CREATE TABLE #Temp(
            ID INT
    )
    
    DECLARE @Int INT,
            @InnerInt INT
    SELECT  @Int = 1,
            @InnerInt = 1
    
    WHILE @Int < 50000
    BEGIN
        WHILE @InnerInt < 10
        BEGIN
            INSERT INTO #Temp SELECT @InnerInt
            SET @InnerInt = @InnerInt + 1
        END
        SELECT @Int = @Int + 1,
                @InnerInt = 1
        TRUNCATE TABLE #Temp
    END
    
    DROP TABLE #TEMP
    
    GO
    
    DECLARE @Temp TABLE(
            ID INT
    )
    
    DECLARE @Int INT,
            @InnerInt INT
    SELECT  @Int = 1,
            @InnerInt = 1
    
    WHILE @Int < 50000
    BEGIN
        WHILE @InnerInt < 10
        BEGIN
            INSERT INTO @Temp SELECT @InnerInt
            SET @InnerInt = @InnerInt + 1
        END
        SELECT @Int = @Int + 1,
                @InnerInt = 1
        DELETE FROM @Temp
    END
    

    SQL プロファイラーから

    CPU     Reads   Writes  Duration
    36375     2799937   0       39319
    
    vs
    
    CPU     Reads   Writes  Duration
    14750   1700031 2       17376   
    


    1. カンマ区切りの文字列をmysqlの行に分割します

    2. RMySQLシステムエラー:10060

    3. mysqlで値のカウントを取得する方法

    4. winformリストボックスの列を非表示にする方法は?