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

Alternatif untuk menggunakan WHERE ... IN (...) untuk kueri SQL yang lambat

Hanya untuk cekikikan lagi, bisakah Anda mencoba kueri ini:

  select 
    [sID], 
    ROW_NUMBER() over (partition by [sID] order by [wordPos]) [rn], 
    [wordPos], [FTSindex].[wordID]
  from [FTSindex] 
  join ( 
    values (428), (2112)
  ) w (wordID) on w.wordID = [FTSindex].wordID
  order by [sID], [rn] 

Terkadang, melempar lebih banyak perangkat keras pada masalah adalah jawaban yang benar; meskipun saya setuju bahwa ini harus menjadi pilihan terakhir dan bukan yang pertama. Apakah masalah khusus ini membutuhkan lebih banyak CPU, lebih banyak memori, atau lebih banyak spindel bergantung pada banyak faktor, termasuk perangkat keras Anda saat ini.

Kumpulan hasil Anda yang terdiri dari 1,6 juta baris, masing-masing 4 bilangan bulat, harus diurutkan dengan cepat pada jumlah perangkat keras saat ini yang wajar. Karena penundaan terjadi, sepertinya terlalu banyak pemrosesan yang terjadi pada set dasar 900 juta baris, dan tantangannya adalah mengidentifikasi alasannya. Bisakah Anda melampirkan detail lebih lanjut tentang rencana kueri?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Anda memotong semua tabel dalam database menggunakan TSQL?

  2. Grup SQL Server berdasarkan Hitungan DateTime Per Jam?

  3. Tidak dapat memasukkan nilai eksplisit untuk kolom identitas dalam tabel 'tabel' ketika IDENTITY_INSERT disetel ke OFF

  4. Cara meneruskan array string dalam parameter SQL ke klausa IN dalam SQL

  5. Cara Memformat Angka dengan Koma di SQL Server