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

Perbedaan antara fungsi sebaris dan tampilan

Setelah membaca banyak jawaban di sini, saya ingin mencatat bahwa ada perbedaan besar antara fungsi bernilai tabel sebaris dan jenis fungsi lainnya (TVF skalar atau multi-baris).

TVF inline hanyalah tampilan parameter. Itu dapat diperluas dan dioptimalkan seperti tampilan. Tidak diperlukan untuk mewujudkan apa pun sebelum "mengembalikan hasil" atau semacamnya (walaupun, sayangnya, sintaksnya memiliki RETURN .

Manfaat besar yang saya temukan dari TVF sebaris pada tampilan adalah bahwa hal itu memaksa parameterisasi yang diperlukan sedangkan dengan tampilan, Anda harus berasumsi bahwa penelepon akan bergabung atau membatasi penggunaan tampilan dengan tepat.

Misalnya, kami memiliki banyak tabel fakta besar di DW dengan model bintang Kimball yang khas. Saya memiliki pandangan tentang model yang berpusat pada tabel fakta, yang dipanggil tanpa batasan apa pun, akan mengembalikan ratusan juta baris. Dengan menggunakan TVF sebaris dengan parameterisasi yang sesuai, pengguna tidak dapat secara tidak sengaja meminta semua baris. Kinerja sebagian besar tidak dapat dibedakan antara keduanya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Untuk mendapatkan tanggal dari datetime di sql

  2. Mengkonversi nilai numerik ke Varchar

  3. CASE (Berisi) daripada pernyataan yang sama

  4. Bagaimana cara memeriksa apakah ada kolom di tabel SQL Server?

  5. Pilih 2 kolom dalam satu dan gabungkan mereka