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

Kinerja tabel SQL 2005 CTE vs TEMP saat digunakan dalam gabungan tabel lain

CTE hanyalah sebuah alias untuk kueri.

Ini mungkin (atau mungkin tidak) dijalankan ulang setiap kali digunakan.

Tidak ada cara bersih untuk memaksa CTE perwujudan dalam SQL Server (seperti /*+ MATERIALIZE */ Oracle Oracle ), dan Anda harus melakukan trik kotor seperti ini:

CTE dapat meningkatkan kinerja jika digunakan dalam rencana yang hanya membutuhkan satu evaluasi (seperti HASH JOIN , MERGE JOIN dll.).

Dalam skenario ini, tabel hash akan dibuat langsung dari CTE , saat menggunakan tabel temp akan memerlukan evaluasi CTE , menarik hasilnya ke tabel temp dan membaca tabel temp sekali lagi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara untuk memeriksa apakah kunci asing ada di SQL 2005

  2. Perbedaan antara indeks berkerumun dan tidak berkerumun

  3. Bagaimana cara menjadwalkan skrip di SQL Server Express (tanpa SQL Server Agent)?

  4. Bagaimana saya bisa menggabungkan dan membuat grup teks di sql server?

  5. Katalog dinamis server tertaut untuk menjalankan MDX melalui OpenQuery