sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server - Vad händer när en rad i en tabell uppdateras?

Falskt. Uppgifterna ändras på plats, inom samma sida under de flesta omständigheter. Med SQL Server 2008 kan du faktiskt fråga var data finns på disken, vilket kommer att avslöja lika mycket.

Efter att ha tittat på det nu, tar jag tillbaka det hela:

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

Detta kan enkelt testas på SQL Server 2008. (kod modifierad från länkad artikel)

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. MySQL i molnet - Onlinemigrering från Amazon RDS till din egen server:Del 2

  2. En introduktion till Java Security API

  3. Radnummer per grupp i mysql

  4. Logga DBMS_OUTPUT.Put_Line-utgång i tabell i Oracle med DBMS_OUTPUT.Get_Lines