Tantangan yang saya lihat dengan solusinya:
FROM(
SELECT top(100) *
FROM Customers
UNION
SELECT top(100) *
FROM CustomerEurope
UNION
SELECT top(100) *
FROM CustomerAsia
UNION
SELECT top(100) *
FROM CustomerAmericas
)
adalah bahwa ini membuat set data berjendela yang akan berada di RAM dan pada set data yang lebih besar solusi ini akan menciptakan masalah kinerja yang parah karena pertama-tama harus membuat partisi dan kemudian akan menggunakan partisi untuk menulis ke tabel temp.
Solusi yang lebih baik adalah sebagai berikut:
SELECT top(100)* into #tmpFerdeen
FROM Customers
Insert into #tmpFerdeen
SELECT top(100)*
FROM CustomerEurope
Insert into #tmpFerdeen
SELECT top(100)*
FROM CustomerAsia
Insert into #tmpFerdeen
SELECT top(100)*
FROM CustomerAmericas
untuk memilih masukkan ke tabel temp dan kemudian tambahkan baris tambahan. Namun penarikan kembali ke sini adalah jika ada baris duplikat dalam data.
Solusi Terbaik adalah sebagai berikut:
Insert into #tmpFerdeen
SELECT top(100)*
FROM Customers
UNION
SELECT top(100)*
FROM CustomerEurope
UNION
SELECT top(100)*
FROM CustomerAsia
UNION
SELECT top(100)*
FROM CustomerAmericas
Metode ini harus bekerja untuk semua tujuan yang memerlukan baris berbeda. Namun, jika Anda ingin baris duplikat cukup menukar UNION untuk UNION ALL
Semoga berhasil!