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

SQL Server:haruskah saya menggunakan tabel information_schema di atas tabel sistem?

Kecuali Anda sedang menulis aplikasi yang Anda tahu pasti perlu portabel atau Anda hanya menginginkan informasi yang cukup mendasar, saya hanya akan menggunakan tampilan sistem SQL Server secara default untuk memulai.

Information_Schema tampilan hanya menampilkan objek yang kompatibel dengan standar SQL-92. Ini berarti tidak ada tampilan skema informasi bahkan untuk konstruksi yang cukup mendasar seperti indeks (Ini tidak didefinisikan dalam standar dan dibiarkan sebagai detail implementasi.) Apalagi fitur milik SQL Server.

Selain itu, ini bukan obat mujarab untuk portabilitas yang mungkin diasumsikan. Implementasi masih berbeda antar sistem. Oracle tidak mengimplementasikannya "di luar kotak" sama sekali dan dokumen MySql mengatakan:

Pengguna SQL Server 2000 (yang juga mengikuti standar) mungkin melihat kesamaan yang kuat. Namun, MySQL telah menghilangkan banyak kolom yang tidak relevan untuk implementasi kami, dan menambahkan kolom yang khusus untuk MySQL. Salah satu kolom tersebut adalah kolom ENGINE di tabel INFORMATION_SCHEMA.TABLES.

Bahkan untuk konstruksi SQL roti dan mentega seperti batasan kunci asing Information_Schema tampilan bisa sangat kurang efisien untuk digunakan daripada sys. tampilan karena tidak mengekspos id objek yang memungkinkan kueri yang efisien.

misalnya Lihat pertanyaan SQL query melambat dari 1 detik menjadi 11 menit - mengapa? dan rencana eksekusi.

INFORMATION_SCHEMA

sys



  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 Menggabungkan String di SQL Server dengan CONCAT()

  2. ISDATE() Contoh di SQL Server

  3. Bagaimana cara mengubah bahasa default untuk SQL Server?

  4. Cara Mengganti Nama Database SQL Server menggunakan T-SQL

  5. Cara Menyertakan Hasil yang Mengikat untuk Tempat Terakhir saat Menggunakan Klausa TOP di SQL Server