sql >> データベース >  >> RDS >> Sqlserver

SQL Server-テーブルの行が更新されるとどうなりますか?

    誤り。ほとんどの場合、同じページ内でデータが変更されます。 SQL Server 2008を使用すると、データがディスク上のどこにあるかを実際に調べることができます。これにより、多くのことが明らかになります。

    今実際にそれを見て、私はそれをすべて取り戻します:

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

    これはSQLServer2008で簡単にテストできます。(リンクされた記事からコードを変更)

    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. PostgreSQLとMySQL、比較

    2. PLPDF_TOOLKIT PL / SQLパッケージを使用して、Oracleで複数のPDFファイルを1つのPDFにマージ/結合

    3. docker-composeによるpostgresへのDjango接続

    4. SQLServerループ-一連のレコードをループするにはどうすればよいですか