반응형
  1. /**********************************************************************************************
    -- Title : [2k] 고스트 레코드(ghost record) 확인
    -- Reference : dbRang.com
    -- Key word : 고스트 레코드 ghost record
    **********************************************************************************************/

    use credit

    drop table charge_del_test

    select top 100000 *
    into charge_del_test
    from charge

    create unique clustered index pk_charge_del_test
      on charge_del_test (charge_no)
    create index ix_charge_del_test
      on charge_del_test (member_no)
    create index ix2_charge_del_test
      on charge_del_test (charge_dt)

    exec sp_spaceused charge_del_test
    --charge_del_test 100000     14760 KB 4656 KB 2680 KB 7424 KB

    begin tran

    delete charge_del_test
    where charge_no % 3 = 0

    exec sp_spaceused charge_del_test
    --charge_del_test 66667      14760 KB 4656 KB 2680 KB 7424 KB

    sp_converthex0 'charge_del_test'
    -- object_name             rootDec root            firstIAMDec firstIAM
    -- pk_charge_del_test      1:5177 0xF10200000100 1:1719     0xB70600000100
    -- ix_charge_del_test      1:2466 0xB20C00000100 1:1717     0xB50600000100
    -- ix2_charge_del_test     1:3170 0xF20F00000100 1:1718     0xB60600000100

    dbcc traceon(3604)
    dbcc traceon(2514) --ghost rec.
    dbcc traceon(2509) --forward rec.

    dbcc page (credit, 1, 1719, 3)
    /*
    m_ghostRecCnt = 4  

    Slot 1 Offset 0x92
    ------------------
    Record Type = GHOST_DATA_RECORD    
    */
    dbcc page (credit, 1, 17680,3)
    --charge_no %3 =0 인 행은 존재하지 않는다.

    dbcc checktable(charge_del_test)
    -- 'charge_del_test'의 DBCC결과입니다.
    -- 582 페이지에 'charge_del_test' 개체에 대한 행이 66667개 있습니다.
    -- Forwarded Record count = 0
    -- Ghost Record count = 4860
    -- DBCC 실행이 완료되었습니다. DBCC에서 오류 메시지를 출력하면 시스템 관리자에게 문의하십시오.
반응형

+ Recent posts