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

Bagaimana saya bisa mempercepat kueri Spasial Server Sql ini?

Tampaknya Anda memiliki rencana optimal untuk menjalankan kueri. Akan sulit untuk memperbaikinya. Berikut adalah beberapa pengamatan.

Kueri sedang melakukan Pemindaian Indeks Clustered pada indeks PK_States. Itu tidak menggunakan indeks spasial. Ini karena pengoptimal kueri berpikir akan lebih baik menggunakan indeks berkerumun daripada indeks lainnya. Mengapa? Mungkin karena ada beberapa baris di tabel Negara (50 ditambah mungkin beberapa baris lainnya untuk Washington, D.C., Puerto Rico, dll.).

SQL Server menyimpan dan mengambil data pada halaman 8KB. Ukuran baris (lihat Perkirakan Ukuran Baris) untuk operasi filter adalah 8052 byte, yang berarti ada satu baris per halaman dan sekitar 50 halaman di seluruh tabel. Rencana kueri memperkirakan bahwa ia akan memproses sekitar 18 baris tersebut (Lihat Perkiraan Jumlah Baris). Ini bukan jumlah baris yang signifikan untuk diproses. Penjelasan saya tidak membahas halaman tambahan yang merupakan bagian dari tabel, tapi intinya jumlahnya sekitar 50 dan bukan 50.000 halaman.

Jadi, kembali ke mengapa ia menggunakan indeks PK_States alih-alih indeks SPATIAL_States_Boundry. Indeks berkerumun, menurut definisi, berisi data aktual untuk tabel. Indeks non-clustered menunjuk ke halaman tempat data ada, jadi ada lebih banyak halaman untuk diambil. Jadi, indeks non-cluster menjadi berguna hanya jika ada jumlah data yang lebih besar.

Mungkin ada beberapa hal yang dapat Anda lakukan untuk mengurangi jumlah proses halaman (misalnya, menggunakan indeks penutup), tetapi kueri Anda saat ini sudah dioptimalkan dengan baik dan Anda tidak akan melihat banyak peningkatan kinerja.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kursor SQL Server - loop melalui beberapa server dan jalankan kueri

  2. mengembangkan aplikasi SQL 2005 menggunakan SQL 2008 server

  3. Pemeriksaan Kesehatan SQL Server Proaktif, Bagian 1:Ruang Disk

  4. SQL Server JIKA TIDAK ADA Penggunaan?

  5. SQL Server:String Kosong VS Null