sql >> Databáze >  >> RDS >> Sqlserver

SQL Server, dočasné tabulky se zkrácením vs proměnná tabulky s odstraněním

Spuštěním sledování skriptů by se zdálo, že Proměnná tabulky je lepší varianta

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

Z SQL Profiler

CPU     Reads   Writes  Duration
36375     2799937   0       39319

vs

CPU     Reads   Writes  Duration
14750   1700031 2       17376   


  1. Příkaz UPDATE v Oracle pomocí SQL nebo PL/SQL pro aktualizaci POUZE prvního duplicitního řádku

  2. Existuje řešení, jak povolit FILESTREAM v přístupu prvního kódu v rámci entity

  3. PHP MySQL PDO TextArea Where klauzule s kontrolami podmínek

  4. Mapování bitového datového typu na typ výčtu z databáze do datové sady v SQL Server 2008