Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Server, tabel sementara dengan variabel truncate vs table dengan delete

Menjalankan skrip berikut, tampaknya Variabel Tabel adalah pilihan yang lebih baik

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

Dari Sql Profiler

CPU     Reads   Writes  Duration
36375     2799937   0       39319

vs

CPU     Reads   Writes  Duration
14750   1700031 2       17376   


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Saya perlu membuat tampilan yang menyatukan semua tabel berdasarkan awalan mereka (tabel baru ditambahkan setiap bulan)

  2. tidak dapat menghubungkan sql server 2008 dari komputer lain

  3. Menginstal sampel database AdventureWorks di Microsoft SQL Server 2012

  4. Periksa apakah Database Ada Sebelum Membuat

  5. Tweet Lucu Tentang Kehidupan DBA