sql >> Database >  >> RDS >> Sqlserver

SQL Server - Wat gebeurt er wanneer een rij in een tabel wordt bijgewerkt?

Niet waar. De gegevens worden in de meeste gevallen ter plekke op dezelfde pagina gewijzigd. Met SQL Server 2008 kunt u daadwerkelijk ondervragen waar de gegevens zich op de schijf bevinden, wat zoveel zal onthullen.

Nu ik er echt naar heb gekeken, neem ik het allemaal terug:

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

Dit kan eenvoudig worden getest op SQL Server 2008. (code gewijzigd van gekoppeld 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. Escape een tekenreeks in SQL Server zodat het veilig is om te gebruiken in LIKE-expressie

  2. Eén beveiligingssysteem voor toepassingen, pooling van verbindingen en PostgreSQL - de zaak voor LDAP

  3. Hoe TIME() werkt in MariaDB

  4. INVOEREN IN ... SELECTEER UIT ... OP DUPLICATE KEY UPDATE