SQL Server通过File Header Page来进行Crash Recovery
SQL Server通过File Header Page来进行Crash Recovery
看了盖总的一篇文章
http://www.eygle.com/archives/2008/11/oracle_internals_preface.html
数据文件的第一个Block记录了重要的检查点、SCN等信息,这些信息在启动时要被读取,这里就是这样一种体现。
我们看一下SQL Server的情况,使用DBCC fileheader命令来读取file header page,编号为10是我的一个用户库SSS的数据库ID
环境:SQL Server2012 64位
SELECT DB_ID('sss') DBCC fileheader(10)
(图一)
(图二)
(图三)
(图四)
从上面的图大家应该发现一些规律
RecoveryForkLSN:Cash Recovery的时候需要调用的lsn,也是RedoStartLSN:27000000027100001
ReadOnlyLsn:只读模式数据库
ReadWriteLsn:读写模式数据库
因为file header page是每个数据库的mdf文件的第一个页面,启动的过程里面其实最重要也是最耗时就是数据库redo和undo过程
所以把Redo Start LSN放在file header page也就不无道理了,数据库一启动马上就读取LSN信息,然后到LDF文件里读取日志
数据库第0页:file header page
数据库第1页:PFS (Page Free Space) ,也叫页面自由空间
数据库第2页:GAM 全局分配映射(Global Allocation Map,GAM)页面
数据库第3页:SGAM 共享全局分配映射(Shared Global Allocation Map,SGAM)页面
第4页没有数据
第5页没有数据
数据库第6页:DCM 差异变更(Differential Changed Map,DCM)页面
数据库第7页:BCM 批量更改映射(Bulk Changed Map)页面
数据库第8页:sys.sysqnames 存在于每个数据库中。
数据库第9页:boot page 数据库根据这个页面的信息来启动的
boot page是放在第9页不是放在第0页,为什麽呢?因为数据库先要进行Cash Recovery才能启动啊
--看一下file header page DBCC TRACEON(3604,-1)
GO DBCC PAGE([sss],1,0,3)
GO
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 PAGE: (1:0) BUFFER: BUF @0x00000002FDABA800 bpage = 0x00000002EFF88000 bhash = 0x0000000000000000 bpageno = (1:0)
bdbid = 10 breferences = 0 bcputicks = 88
bsampleCount = 1 bUse1 = 36811 bstat = 0x9
blog = 0x15ab215a bnext = 0x0000000000000000 PAGE HEADER: Page @0x00000002EFF88000 m_pageId = (1:0) m_headerVersion = 1 m_type = 15
m_typeFlagBits = 0x0 m_level = 0 m_flagBits = 0x208
m_objId (AllocUnitId.idObj) = 99 m_indexId (AllocUnitId.idInd) = 0 Metadata: AllocUnitId = 6488064
Metadata: PartitionId = 0 Metadata: IndexId = 0 Metadata: ObjectId = 99
m_prevPage = (0:0) m_nextPage = (0:0) pminlen = 0
m_slotCnt = 1 m_freeCnt = 7029 m_freeData = 7551
m_reservedCnt = 0 m_lsn = (878:901:1) m_xactReserved = 0
m_xdesId = (0:0) m_ghostRecCnt = 0 m_tornBits = -582568961
DB Frag ID = 1 Allocation Status GAM (1:2) = ALLOCATED SGAM (1:3) = NOT ALLOCATED PFS (1:1) = 0x44 ALLOCATED 100_PCT_FULL
DIFF (1:6) = CHANGED ML (1:7) = NOT MIN_LOGGED File Header Data: Record Type = PRIMARY_RECORD Record Attributes = NULL_BITMAP VARIABLE_COLUMNS
Record Size = 1065
Memory Dump @0x000000000D1BB956 0000000000000000: 30000800 00000000 31000000 00000000 002e007f 0.......1...........
0000000000000014: 007f0081 00830087 008b008f 0093009d 00a700b1 ....................
0000000000000028: 00b100b5 00b900bd 00c100cb 00e700f1 00fb0005 ....................
000000000000003C: 0115011f 012f0133 013d013d 01430153 01530153 ...../.3.=.=.C.S.S.S
0000000000000050: 01530153 01530153 01630163 0163016d 01770193 .S.S.S.S.c.c.c.m.w..
0000000000000064: 019d01ad 01c901d1 012904c5 cbddcf11 44c34889 .........)......D.H.
0000000000000078: 52cc552b 3eba7601 00010080 c00500ff ffffff80 R.U+>.v.............
000000000000008C: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000000A0: 00000000 00000000 00000000 00000000 00800100 ....................
00000000000000B4: 00000000 00ffffff ff000200 001b0000 000f0100 ....................
00000000000000C8: 0001001b 0000000f 01000001 00000053 d02a7787 ...............S.*w.
00000000000000DC: 3ec94e97 926f64fe 3febf81b 000000c3 000000b2 >.N..od.?...........
00000000000000F0: 00000000 00000000 0000006e 0300006d 0300002e ...........n...m....
0000000000000104: 00284a9c 892994c1 4692f4f1 e3c51d34 90000000 .(J..)..F......4....
0000000000000118: 00000000 00000014 51b676d9 b1a34abc c0185ae9 ........Q.v...J...Z.
000000000000012C: 6fccb108 0000001b 0000000f 01000001 00730073 o................s.s
0000000000000140: 0073006a 49d8681b 194f469a 40c068d8 57651953 .s.jI.h..OF.@.h.We.S
0000000000000154: d02a7787 3ec94e97 926f64fe 3febf800 00000000 .*w.>.N..od.?.......
0000000000000168: 00000000 00000000 00000000 00000000 00000000 ....................
000000000000017C: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000190: 0000001b 000000c3 000000b2 006a49d8 681b194f .............jI.h..O
00000000000001A4: 469a40c0 68d85765 19000000 00000000 00000000 F.@.h.We............
00000000000001B8: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000001CC: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000001E0: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000001F4: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000208: 00000000 00000000 00000000 00000000 00000000 ....................
000000000000021C: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000230: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000244: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000258: 00000000 00000000 00000000 00000000 00000000 ....................
000000000000026C: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000280: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000294: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000002A8: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000002BC: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000002D0: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000002E4: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000002F8: 00000000 00000000 00000000 00000000 00000000 ....................
000000000000030C: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000320: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000334: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000348: 00000000 00000000 00000000 00000000 00000000 ....................
000000000000035C: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000370: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000384: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000398: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000003AC: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000003C0: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000003D4: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000003E8: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000003FC: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000410: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000424: 00000000 00 .....
BindingID = cfddcbc5-4411-48c3-8952-cc552b3eba76 FileIdProp = 1
FileGroupId = 1 Size = 49280 MaxSize = 65535
Growth = 128 Perf = 0 BackupLsn = (0:0:0)
FirstUpdateLsn = (0:0:0) OldestRestoredLsn = (0:0:0) FirstNonloggedUpdateLsn = [NULL]
MinSize = 384 Status = 0 UserShrinkSize = 65535
SectorSize = 512 MaxLsn = (27:271:1) FirstLsn = (27:195:178)
CreateLsn = (0:0:0) DifferentialBaseLsn = (878:877:46)
DifferentialBaseGuid = 899c4a28-9429-46c1-92f4-f1e3c51d3490 FileOfflineLsn = (0:0:0)
FileIdGuid = 76b65114-b1d9-4aa3-bcc0-185ae96fccb1 RestoreStatus = 8
RestoreRedoStartLsn = (27:271:1) RestoreSourceGuid = 68d8496a-191b-464f-9a40-c068d8576519
HardenedSkipLsn = [NULL] ReplTxfTruncationLsn = [NULL] TxfBackupLsn = [NULL]
FstrContainerSize = [NULL] MaxLsnBranchId = 772ad053-3e87-4ec9-9792-6f64fe3febf8
SecondaryRedoStartLsn = [NULL] SecondaryDifferentialBaseLsn = [NULL]
ReadOnlyLsn = (0:0:0) ReadWriteLsn = (0:0:0)
RestoreDifferentialBaseLsn = (27:195:178)
RestoreDifferentialBaseGuid = 68d8496a-191b-464f-9a40-c068d8576519
RestorePathOrigin hex (dec) = 0x00000000:00000000:0000 (0:0:0)
m_guid = 00000000-0000-0000-0000-000000000000
DatabaseEncryptionFileState.m_maxScannedPage = 0 DatabaseEncryptionFileState.m_keyId = 0 FCBFileDEK m_dbeStatusBits = 0 m_dtCreated = 1900-01-01 00:00:00.000
m_dtLastRegenerated = 1900-01-01 00:00:00.000
m_dtLastModified = 1900-01-01 00:00:00.000 m_dtLastSet = 1900-01-01 00:00:00.000
m_dtOpened = 1900-01-01 00:00:00.000m_algId = 0 m_algId = 0
m_dwBitLen = 0 m_cbThumbprint = 0 m_rgbThumbprint = 0x DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
--看一下boot page的内容
DBCC TRACEON(3604,-1)
GO DBCC PAGE([sss],1,9,3)
GO
Page @0x00000002EA7DE000 m_pageId = (1:9) m_headerVersion = 1 m_type = 13
m_typeFlagBits = 0x0 m_level = 0 m_flagBits = 0x200
m_objId (AllocUnitId.idObj) = 99 m_indexId (AllocUnitId.idInd) = 0 Metadata: AllocUnitId = 6488064
Metadata: PartitionId = 0 Metadata: IndexId = 0 Metadata: ObjectId = 99
m_prevPage = (0:0) m_nextPage = (0:0) pminlen = 0
m_slotCnt = 1 m_freeCnt = 6590 m_freeData = 1600
m_reservedCnt = 0 m_lsn = (878:1345:2) m_xactReserved = 0
m_xdesId = (0:0) m_ghostRecCnt = 0 m_tornBits = 2000067799
DB Frag ID = 1 Allocation Status GAM (1:2) = ALLOCATED SGAM (1:3) = NOT ALLOCATED
PFS (1:1) = 0x64 MIXED_EXT ALLOCATED 100_PCT_FULL DIFF (1:6) = CHANGED
ML (1:7) = NOT MIN_LOGGED Slot 0, Offset 0x60, Length 1504, DumpStyle BYTE Record Type = PRIMARY_RECORD Record Attributes = Record Size = 1504 Memory Dump @0x000000000D1BA060 0000000000000000: 0000e005 c2026302 00000000 00000000 00000000 ......c.............
0000000000000014: 00000000 00000000 00000000 00000000 08008100 ....................
0000000000000028: ae80847c bba19900 0ca30000 73007300 73002020 ...|........s.s.s.
000000000000003C: 20202020 20202020 20202020 20202020 20202020
0000000000000050: 20202020 20202020 20202020 20202020 20202020
0000000000000064: 20202020 20202020 20202020 20202020 20202020
0000000000000078: 20202020 20202020 20202020 20202020 20202020
000000000000008C: 20202020 20202020 20202020 20202020 20202020
00000000000000A0: 20202020 20202020 20202020 20202020 20202020
00000000000000B4: 20202020 20202020 20202020 20202020 20202020
00000000000000C8: 20202020 20202020 20202020 20202020 20202020
00000000000000DC: 20202020 20202020 20202020 20202020 20202020
00000000000000F0: 20202020 20202020 20202020 20202020 20202020
0000000000000104: 20202020 20202020 20202020 20202020 20202020
0000000000000118: 20202020 20202020 20202020 20202020 20202020
000000000000012C: 20202020 20202020 06000000 0a006e00 70170000 ......n.p...
0000000000000140: 00000000 00000000 00000000 00000000 6e030000 ................n...
0000000000000154: 6d030000 2e004000 6e030000 3a050000 0c000200 m.....@.n...:.......
0000000000000168: 00000000 00000000 00000000 6e030000 3a050000 ............n...:...
000000000000017C: 0c000000 c2271400 00000000 24d00000 00000000 .....'......$.......
0000000000000190: 00000041 00000000 53d02a77 873ec94e 97926f64 ...A....S.*w.>.N..od
00000000000001A4: fe3febf8 00e67dbf 00000000 00000000 00000000 .?....}.............
00000000000001B8: 00000000 1b000000 0f010000 01000000 d305e86e ...................n
00000000000001CC: 6e28d54a 892e8070 c5aec1fa 1b000000 0f010000 n(.J...p............
00000000000001E0: 01000000 53d02a77 873ec94e 97926f64 fe3febf8 ....S.*w.>.N..od.?..
00000000000001F4: 284a9c89 2994c146 92f4f1e3 c51d3490 14000000 (J..)..F......4.....
0000000000000208: 01006302 00000000 00000000 00000000 22000000 ..c............."...
000000000000021C: d0000000 03000400 80000000 00000000 00000000 ....................
0000000000000230: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000244: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000258: 00000000 00000000 00000000 00000000 00000000 ....................
000000000000026C: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000280: c9020000 1e000000 e3000000 c3f9a100 bda30000 ....................
0000000000000294: 00000000 00000000 00000000 00000000 553cda00 ................U<..
00000000000002A8: 05a30000 b80b000b 00000000 59123e95 5d4a114b ............Y.>.]J.K
00000000000002BC: b9a2abb7 5245120c 00000000 00000000 00000000 ....RE..............
00000000000002D0: 00000000 00000000 00000000 00000000 96010000 ....................
00000000000002E4: 00010000 00000000 00000000 00000000 02000000 ....................
00000000000002F8: 00000000 00000000 00000000 00000000 00000000 ....................
000000000000030C: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000320: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000334: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000348: 00000000 00000000 00000000 00000000 00000000 ....................
000000000000035C: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000370: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000384: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000398: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000003AC: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000003C0: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000003D4: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000003E8: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000003FC: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000410: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000424: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000438: 00000000 00000000 00000000 00000000 00000000 ....................
000000000000044C: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000460: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000474: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000488: 00000000 00000000 00000000 00000000 00000000 ....................
000000000000049C: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000004B0: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000004C4: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000004D8: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000004EC: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000500: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000514: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000528: 00000000 00000000 00000000 00000000 00000000 ....................
000000000000053C: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000550: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000564: 00000000 00000000 00000000 00000000 00000000 ....................
0000000000000578: 00000000 00000000 00000000 00000000 00000000 ....................
000000000000058C: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000005A0: 00000000 00000000 00000000 20000000 78000000 ............ ...x...
00000000000005B4: 43000000 00000000 00000000 00000000 00000000 C...................
00000000000005C8: 00000000 00000000 00000000 00000000 00000000 ....................
00000000000005DC: 00000000 .... DBINFO @0x000000000D1BA060 dbi_version = 706 dbi_createVersion = 611 dbi_SEVersion = 0
dbi_dvSplitPoint = 0:0:0 (0x00000000:00000000:0000)
dbi_dbbackupLSN = 0:0:0 (0x00000000:00000000:0000)
dbi_LastLogBackupTime = 1900-01-01 00:00:00.000
dbi_nextseqnum = 1900-01-01 00:00:00.000 dbi_status = 0x00810008
dbi_crdate = 2014-04-13 09:19:21.370dbi_dbname = sss dbi_dbid = 10
dbi_cmptlevel = 110 dbi_masterfixups = 0 dbi_maxDbTimestamp = 6000
dbi_dbbackupLSN = 0:0:0 (0x00000000:00000000:0000) dbi_RebuildLogs = 0
dbi_differentialBaseLSN = 878:877:46 (0x0000036e:0000036d:002e) dbi_RestoreFlags = 0x0040
dbi_checkptLSN = 878:1338:12 (0x0000036e:0000053a:000c) dbi_dbccFlags = 2
dbi_COWLastLSN = 0:0:0 (0x00000000:00000000:0000)
dbi_DirtyPageLSN = 878:1338:12 (0x0000036e:0000053a:000c) dbi_RecoveryFlags = 0x00000000
dbi_lastxact = 0x1427c2 dbi_collation = 53284 dbi_relstat = 0x41000000
dbi_familyGUID = 772ad053-3e87-4ec9-9792-6f64fe3febf8 dbi_maxLogSpaceUsed = 3212699136 dbi_recoveryForkNameStack entry 0 hex (dec) = 0x0000001b:0000010f:0001 (27:271:1)
m_guid = 6ee805d3-286e-4ad5-892e-8070c5aec1fa entry 1 hex (dec) = 0x0000001b:0000010f:0001 (27:271:1)
m_guid = 772ad053-3e87-4ec9-9792-6f64fe3febf8
dbi_differentialBaseGuid = 899c4a28-9429-46c1-92f4-f1e3c51d3490 dbi_firstSysIndexes = 0001:00000014
dbi_oldestBackupXactLSN = 0:0:0 (0x00000000:00000000:0000)
dbi_versionChangeLSN = 34:208:3 (0x00000022:000000d0:0003) dbi_mdUpgStat = 0x0004
dbi_category = 0x0000000000000080 dbi_safetySequence = 0
dbi_dbMirrorId = 00000000-0000-0000-0000-000000000000
dbi_pageUndoLsn = 0:0:0 (0x00000000:00000000:0000) dbi_pageUndoState = 0
dbi_disabledSequence = 0 dbi_dbmRedoLsn = 0:0:0 (0x00000000:00000000:0000)
dbi_dbmOldestXactLsn = 0:0:0 (0x00000000:00000000:0000) dbi_CloneCpuCount = 0
dbi_CloneMemorySize = 0 dbi_updSysCatalog = 1900-01-01 00:00:00.000
dbi_LogBackupChainOrigin = 713:30:227 (0x000002c9:0000001e:00e3)
dbi_dbccLastKnownGood = 2014-10-07 09:49:44.117 dbi_roleSequence = 0
dbi_dbmHardenedLsn = 0:0:0 (0x00000000:00000000:0000) dbi_localState = 0
dbi_safety = 0 dbi_modDate = 2014-04-06 13:14:34.310
dbi_verRDB = 184552376 dbi_lazyCommitOption = 0
dbi_svcBrokerGUID = 953e1259-4a5d-4b11-b9a2-abb75245120c dbi_svcBrokerOptions = 0x00000000
dbi_dbmLogZeroOutstanding = 0 dbi_dbmLastGoodRoleSequence = 0 dbi_dbmRedoQueue = 0
dbi_dbmRedoQueueType = 0 dbi_rmidRegistryValueDeleted = 0 dbi_dbmConnectionTimeout = 0
dbi_fragmentId = 0 dbi_AuIdNext = 1099511628182
dbi_MinSkipLsn = 0:0:0 (0x00000000:00000000:0000) dbi_commitTsOfcheckptLSN = 2
dbi_dbEmptyVersionState = 0 dbi_CurrentGeneration = 0
dbi_EncryptionHistory Scan 0 hex (dec) = 0x00000000:00000000:0000 (0:0:0)
EncryptionScanInfo:ScanId = 0 Scan 1 hex (dec) = 0x00000000:00000000:0000 (0:0:0)
EncryptionScanInfo:ScanId = 0 Scan 2 hex (dec) = 0x00000000:00000000:0000 (0:0:0)
EncryptionScanInfo:ScanId = 0
dbi_latestVersioningUpgradeLSN = 32:120:67 (0x00000020:00000078:0043) dbi_splitAGE = 0
dbi_PendingRestoreOutcomesId = 00000000-0000-0000-0000-000000000000 dbi_ContianmentState = 0
相关文章
查看SQLSERVER内部数据页面的小插件Internals Viewer
如有不对的地方,欢迎大家拍砖o(∩_∩)o
SQL Server通过File Header Page来进行Crash Recovery的更多相关文章
- SQL Server ->> Sparse File(稀疏文件)
Sparse File(稀疏文件)不是SQL Server的特性.它属于Windows的NTFS文件系统的一个特性.如果某个大文件中的数据包含着大量“0数据”(这个应该从二进制上看),这样的文件就可以 ...
- SQL server 2008r2 file is corrupt
下载的SQLManagement studio有问题,重新下载一遍后再安装就好了.安装顺序没问题. 在卸载SQL Server开始——运行:输入regedit 进入注册表编辑器,进入之后执行下列操作: ...
- SQL Server如何找出一个表包含的页信息(Page)
在SQL Server中,如何找到一张表或某个索引拥有那些页面(page)呢? 有时候,我们在分析和研究(例如,死锁分析)的时候还真有这样的需求,那么如何做呢? SQL Server 2012提供了一 ...
- SQL Server页类型汇总+疑问
该文章整理自:http://www.sqlnotes.info/2011/10/31/page-type/ SQL Server中包含多种不同类型的页,来满足数据存储的需求.不管是什么类型的页,它们的 ...
- SQL Server 存储(1/8):理解数据页结构
我们都很清楚SQL Server用8KB 的页来存储数据,并且在SQL Server里磁盘 I/O 操作在页级执行.也就是说,SQL Server 读取或写入所有数据页.页有不同的类型,像数据页,GA ...
- 人人都是 DBA(VIII)SQL Server 页存储结构
当在 SQL Server 数据库中创建一张表时,会在多张系统基础表中插入所创建表的信息,用于管理该表.通过目录视图 sys.tables, sys.columns, sys.indexes 可以查看 ...
- P6 Professional Installation and Configuration Guide (Microsoft SQL Server Database) 16 R1
P6 Professional Installation and Configuration Guide (Microsoft SQL Server Database) 16 R1 May ...
- SQL Server :理解数据页结构
原文:SQL Server :理解数据页结构 我们都很清楚SQL Server用8KB 的页来存储数据,并且在SQL Server里磁盘 I/O 操作在页级执行.也就是说,SQL Server 读取或 ...
- 【野草】SQL Server之索引解析(一)
1.写在前面 微软专门给出SQL Server设计思路及实现路线,从7大体系结构阐述是如何实现,通过了解这些,我们就可以总结出数据库设计原则.编程中sql写法及注意事项,从而优化我们的系统性能,本系列 ...
随机推荐
- retrofit使用随记
1.请求接口 public interface RetrofitApi { /*注册*/ /*登录*/ @FormUrlEncoded //post请求带这个 @POST("url" ...
- jQuery简单实现iframe的高度根据页面内容自适应的方法(转)
本文实例讲述了jQuery简单实现iframe的高度根据页面内容自适应的方法.分享给大家供大家参考,具体如下: 方式1: //注意:下面的代码是放在和iframe同一个页面中调用 $("#i ...
- 搭建自己的LAMP
LAMP的搭建说简单也简单,说难也不容易,如果采用一键安装也是比较容易的,但想配置自己需要的版本等等也是比较麻烦.前段时间我分别在自己的电脑和阿里云上部署了Lamp环境,以下是步骤和常出现的问题的解决 ...
- git 创建分支 并 提交到远程分支
git branch(分支命令的使用http://hbiao68.iteye.com/blog/2055493 0.可以通过git branch -r 命令查看远端库的分支情况 1,从已有的分支创建新 ...
- 设计模式之简单工厂模式Simple Factory(四创建型)
工厂模式简介. 工厂模式专门负责将大量有共同接口的类实例化 工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类. 工厂模式有三种形态: 1.简单工厂模式Simple Factory ...
- linux内核(kernel)版本号的意义
转自:http://www.cnblogs.com/jsjliuxing/archive/2011/12/01/2271182.html 在linux下有一个目录,即/usr/src/kernels/ ...
- fat32转ntfs
convert c: /fs:ntfs 下了个维基的zim,7G,fat32放不下 :( Microsoft Windows [版本 6.1.7600] 版权所有 (c) 2009 Microsoft ...
- JS表单前台校验模板
表单校验是几乎所有WEB应用都会用到的,这里提供一种用原生JavaScript的简单前台校验 <form id="registerForm" action="&qu ...
- tomcat的安全配置(禁用http方法,部署多个应用,启用从安全cookie,指定错误页面和显示信息)
配置版本:tomcat6 1,虚拟路径,可以配置多个host在一个tomcat中,docbase是web应用目录,此处在server.xml中添加应用配置,要让server.xml配置生效需要重启to ...
- 返水bug-中澳
NOOK(Y) CSBFB(30000) off(N) QQ(2652880032) G(1) off1(Y) QQ1(3479301404) G1(1) off2(N) QQ2(309235846) ...