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

SQL Server - Apa yang terjadi ketika baris dalam tabel diperbarui?

Salah. Data diubah di tempat, dalam halaman yang sama di sebagian besar keadaan. Dengan SQL Server 2008, Anda sebenarnya dapat menginterogasi di mana data berada pada disk, yang akan mengungkapkan sebanyak mungkin.

Setelah benar-benar melihatnya sekarang, saya mengambil semuanya kembali:

http://www.sqlskills.com/BLOGS/PAUL/category/On-Disk-Structures.aspx

Ini dapat dengan mudah diuji pada SQL Server 2008. (kode dimodifikasi dari artikel tertaut)

CREATE TABLE test (c1 INT, c2 VARCHAR (2000));
GO
CREATE CLUSTERED INDEX test_cl ON test (c1);
GO
CHECKPOINT;
GO
INSERT INTO test VALUES (1, REPLICATE ('Paul', 500));
GO
CHECKPOINT;
select %%physloc%%, * from test    -- 0x3E01000001000000
GO
UPDATE test SET c1 = 2 WHERE c1 =1;
GO
select %%physloc%%, * from test    -- 0x3E01000001000100
                                                     ^
                                                     |
                                    notice it has changed location



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Beberapa baris ke satu nilai yang dipisahkan koma di Sql Server

  2. Apakah ada cara untuk mendapatkan daftar semua tabel sementara saat ini di SQL Server?

  3. Mengapa saya tidak bisa menggunakan alias dalam pernyataan DELETE?

  4. scope_identity vs ident_current

  5. Pemecahan Masalah Replikasi Transaksional SQL Server