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

Mengapa tampilan yang diindeks tidak dapat memiliki agregat MAX()?

Agregat ini tidak diperbolehkan karena tidak dapat dihitung ulang hanya berdasarkan nilai yang diubah.

Beberapa agregat, seperti COUNT_BIG() atau SUM() , dapat dihitung ulang hanya dengan melihat data yang diubah. Ini diperbolehkan dalam tampilan yang diindeks karena, jika nilai yang mendasarinya berubah, dampak dari perubahan itu dapat langsung dihitung.

Agregat lainnya, seperti MIN() dan MAX() , tidak dapat dihitung ulang hanya dengan melihat data yang diubah. Jika Anda menghapus nilai yang saat ini merupakan maks atau min, maka maks atau min baru harus dicari dan ditemukan di seluruh meja.

Prinsip yang sama berlaku untuk agregat lainnya, seperti AVG() atau agregat variasi standar. SQL tidak dapat menghitung ulang hanya dari nilai yang diubah, tetapi perlu memindai ulang seluruh tabel untuk mendapatkan nilai baru.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pemindaian Mundur Indeks SQL Server:Pemahaman dan Penyetelan Kinerja

  2. Menduplikasi baris berdasarkan nilai kolom di setiap baris

  3. Cara Memperbaiki "nama profil tidak valid" Saat Memperbarui Profil Email Database di SQL Server (T-SQL)

  4. Berbagai Cara untuk Memantau Grup Ketersediaan AlwaysOn SQL Server

  5. Bisakah LINQ-to-SQL menghilangkan kolom yang tidak ditentukan pada sisipan sehingga nilai default basis data digunakan?