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

Mengapa menggunakan Pilih 100 Persen Teratas?

Itu digunakan untuk "materialisasi menengah (pencarian Google)"

Artikel bagus:Adam Machanic:Menjelajahi rahasia materialisasi perantara

Dia bahkan mengangkat MS Connect sehingga dapat dilakukan dengan cara yang lebih bersih

Pandangan saya "tidak buruk secara inheren", tetapi jangan menggunakannya kecuali 100% yakin. Masalahnya adalah, ini hanya berfungsi pada saat Anda melakukannya dan mungkin tidak nanti (tingkat tambalan, skema, indeks, jumlah baris, dll.)...

Contoh yang berhasil

Ini mungkin gagal karena Anda tidak tahu urutan hal-hal yang dievaluasi

SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1 AND CAST(foo AS int) > 100

Dan ini mungkin juga gagal karena

SELECT foo
FROM
    (SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1) bar
WHERE
    CAST(foo AS int) > 100

Namun, ini tidak di SQL Server 2000. Permintaan dalam dievaluasi dan dikumpulkan:

SELECT foo
FROM
    (SELECT TOP 100 PERCENT foo From MyTable WHERE ISNUMERIC (foo) = 1 ORDER BY foo) bar
WHERE
    CAST(foo AS int) > 100

Catatan, ini masih berfungsi di SQL Server 2005

SELECT TOP 2000000000 ... ORDER BY...


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Batas SQL NVARCHAR dan VARCHAR

  2. Gabungkan PowerShell dan SQL Diagnostic Manager untuk mengotomatiskan pemantauan SQL Server

  3. CURRENT_TIMESTAMP Contoh di SQL Server (T-SQL)

  4. Bagaimana SESSION_CONTEXT() Bekerja di SQL Server

  5. Batas ukuran indeks 900 byte dalam panjang karakter