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

Kueri SQL yang Sama membutuhkan waktu lebih lama untuk dijalankan dalam satu DB daripada DB lain di bawah server yang sama

Fakta bahwa Anda memiliki dua database di server yang sama dan dengan kumpulan data yang sama (seperti yang Anda katakan) tidak menjamin rencana eksekusi yang sama.

Berikut adalah beberapa alasan mengapa paket kueri mungkin berbeda:

  • File mdf dan ldf (untuk setiap database) berada di drive yang berbeda. Jika onedrives lebih cepat, database itu juga akan menjalankan kueri lebih cepat.
  • statistik terhenti. Jika Anda memiliki satu database dengan statistik yang lebih baru daripada yang lain, SQL memiliki peluang lebih baik untuk memilih rencana eksekusi yang tepat (dan
    lebih cepat).
  • Indeks:Saya tahu Anda mengatakan keduanya identik, tetapi saya akan memeriksa apakah Anda memiliki jenis Indeks yang sama pada keduanya.

Fokus pada melihat mengapa kueri berjalan lambat atau melihat rencana eksekusi yang sebenarnya, daripada membandingkan. Memeriksa rencana eksekusi aktual untuk kueri lambat akan memberi Anda petunjuk mengapa berjalan lebih lambat.

Juga, saya tidak akan menambahkan pernyataan NO LOCK untuk memperbaiki masalah ini. Menurut pengalaman saya, sebagian besar kueri lambat dapat disetel melalui kode atau Indeks, alih-alih menambahkan petunjuk TANPA KUNCI yang mungkin membuat Anda diubah atau kumpulan hasil lama, bergantung pada transaksi Anda.



  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 membuat pemicu yang akan menyimpan data yang dihapus (beberapa catatan) ke Tabel Produksi

  2. Kesalahan saat masuk ke SQL Server

  3. sql server :pilih baris yang jumlahnya cocok dengan nilai

  4. Bagaimana mengkonversi antara zona waktu di SQL Server 2008?

  5. Bagaimana cara memeriksa kompatibilitas skrip sql terhadap SQL 2008