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

Mengapa Pernyataan Sql ini (dengan 2 tabel bergabung) membutuhkan waktu 5 menit untuk diselesaikan?

Ini tidak benar.

Saya memiliki dua kemungkinan:

1) Statistik sudah ketinggalan zaman di tabel. Bangun kembali indeks dan perbarui statistik.

2) Seperti yang Anda katakan, catatan tabel Geografi berukuran besar yang mencakup banyak halaman (bukan satu catatan yang mencakup beberapa halaman karena tidak bisa tetapi catatan mendekati tanda 8K). Dalam hal ini, cukup lucu, membuat indeks non-cluster lain pada indeks clustered mungkin bisa membantu.

PERBARUI

Saya senang bahwa itu telah berhasil. Sekarang beberapa penjelasan.

Pertama-tama, jika ada sesuatu yang tidak benar dan rencana eksekusi terlihat aneh, selalu lihat statistik dan bangun kembali indeks.

Membuat indeks yang tidak berkerumun untuk indeks berkerumun biasanya tidak memberikan manfaat apa pun, tetapi ketika tabel memiliki banyak catatan dan catatan mendekati batas 8K, ini sangat membantu. Seperti yang Anda ketahui, SQL ketika masuk ke disk untuk memuat catatan, itu memuat halaman 8K. Dengan cara yang sama akan mengindeks itu akan memuat halaman 8K. Sekarang dengan indeks menjadi bilangan bulat 4-byte ini berarti memuat ID untuk 2000 catatan sementara itu akan memuat beberapa catatan jika menggunakan indeks berkerumun (ingat semua yang kita butuhkan adalah ID untuk bit GABUNG). Sekarang dengan ini menjadi pencarian biner, saya tidak berharap untuk sangat membantu hanya sedikit. Jadi mungkin ada hal lain yang kurang tepat, tetapi sulit ditebak karena belum melihat sistemnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MS SQL Server dan JDBC:koneksi tertutup

  2. Prosedur atau fungsi tersimpan mengharapkan parameter yang tidak disediakan

  3. Pilih contoh pertama dari sebuah catatan

  4. T-SQL untuk menemukan Nama Server Jarak Jauh dari server yang ditautkan

  5. SQL CASE dan variabel lokal