sql >> Databáze >  >> RDS >> Sqlserver

SQL Server – Co se stane, když je aktualizován řádek v tabulce?

Nepravda. Data se ve většině případů mění na místě, na stejné stránce. S SQL Server 2008 můžete skutečně zjistit, kde se data na disku nacházejí, což odhalí tolik.

Když jsem se na to teď podíval, beru to všechno zpět:

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

To lze snadno otestovat na SQL Server 2008. (kód upraven z odkazovaného článku)

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. Jak modernizovat své podnikání v roce 2022

  2. Jak najdu duplikáty ve více sloupcích?

  3. Jak získat čas z řetězce v MySQL

  4. MySQL NENÍ V dotazu