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

Mengapa CTE lebih baik daripada kursor/tabel turunan/subqueries/tabel temp dll?

CTE (non-rekursif) tidak menggunakan kursor. Ini adalah pendekatan berbasis set. Itulah perbedaan besar dibandingkan dengan menggunakan kursor. Tapi itu benar untuk tidak menggunakan kursor secara umum.

Kursor harus dihindari jika memungkinkan (karena saya yakin kita semua sadar).

CTE tidak selalu lebih baik daripada menggunakan tabel turunan, tetapi mengarah ke kode TSQL yang lebih mudah dipahami. CTE sebenarnya hanyalah singkatan untuk kueri atau subkueri; sesuatu yang mirip dengan tampilan sementara.

Situasi di mana CTE mungkin bukan pendekatan terbaik, adalah saat pengoptimal rencana kueri mendapatkan estimasi baris yang tidak akurat untuk CTE.

Pertanyaan terkait:Apa keuntungan/kerugian menggunakan CTE?




  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 melewati baris yang buruk di sumber file datar ssis

  2. Bagaimana cara membuat dan menanyakan server database tertaut di SQL Server?

  3. Cara Mengembalikan Semua Batasan Kunci Asing yang Dinonaktifkan di SQL Server (Contoh T-SQL)

  4. Mendapatkan nomor minggu dari tanggal di MS SQL Server 2005?

  5. Penggabungan String SQL Server dengan Null