日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

公司招聘软件研发程序员的一道考题--MS SQL Server数据库数据文件页面头部结构...

發(fā)布時(shí)間:2025/1/21 数据库 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 公司招聘软件研发程序员的一道考题--MS SQL Server数据库数据文件页面头部结构... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

有一次在招聘C++程序員時(shí),出的一道考題,內(nèi)容其實(shí)就是MS SQL Server數(shù)據(jù)庫(kù)數(shù)據(jù)文件頁(yè)面頭部結(jié)構(gòu),如下:

有個(gè)file.a文件,這個(gè)文件以16sec[sec是扇區(qū),每個(gè)sec包含512個(gè)Byte(字節(jié))]為一個(gè)頁(yè)進(jìn)行分組并編號(hào)。
如:
文件的0-15sec(0-8191byte)?為第0頁(yè)
文件的16-31sec(8192-16383byte)?為第1頁(yè)
文件的32-47sec(16384-24575byte)?為第2頁(yè) 以此類(lèi)推

每個(gè)頁(yè)的頭96個(gè)字節(jié)結(jié)構(gòu)如下:(注意:這里是每個(gè)頁(yè)頭部96Byte,1頁(yè)大小是16 sec,8192 bytes)
struct mdfPageHeader //文件頁(yè)頭部結(jié)構(gòu)
??? {
????? UINT8??? m_headerVersion; //版本
??????UINT8??? m_type;???????? //頁(yè)類(lèi)型
????? UINT8??? m_typeFlagBits;
????? UINT8??? m_level;??
????? UINT8??? m_flagBits;???
????? UINT8??? m_reservedB;? ??
????? UINT16?? m_indexId;????
????? UINT32?? m_prevPage_id;??
??????UINT16?? m_prevPage_fid;
??????UINT16?? pminlen;?????
????? UINT32?? m_nextPage_id;??
??????UINT16?? m_nextPage_fid;
????? UINT16?? m_slotCnt;????
????? UINT32?? m_objId;???? //所屬對(duì)象ID????
????? UINT16?? m_freeCnt;????
????? UINT16?? m_freeData;???
????? UINT32?? m_pageId_id;? //每頁(yè)編號(hào)?
????? UINT16?? m_pageId_fid;? ?
????? UINT16?? m_reservedCnt;??
????? UINT32?? m_lsn_d1;????
????? UINT32?? m_lsn_d2;
????? UINT16?? m_lsn_w1;
????? UINT16?? m_xactReserved;?
????? UINT32?? m_xdesId_id;
??????UINT16?? m_xdesId_fid;
????? UINT16?? m_ghostRecCnt;
????? UINT32?? m_tornBits;???
????? UINT64?? temp1;
????? UINT64?? temp2;
????? UINT64?? temp3;
????? UINT64?? temp4;
??? };

用VC++完成下面編程:
把符合m_headerVersion==1、m_type==1、m_objId==1三個(gè)條件的頁(yè)面(16sec)找出來(lái),
并把這些頁(yè)面按照查詢先后順序?qū)懙搅硪粋€(gè)文件file.b文件中。

提示:
打開(kāi)和創(chuàng)建文件可以用下面兩種方法來(lái)實(shí)現(xiàn)
1、CFile fileo,filew;
fileo.Open("file.a",CFile::modeRead|CFile::typeBinary);
filew.Open("file.b",CFile::modeCreate|CFile::modeWrite|CFile::typeBinary);

2、HANDLE hFileA,hfileB;
hFileA = CreateFile(_T("file.a"),GENERIC_READ, FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);
hFileB = CreateFile(_T("file.b"),GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,0,NULL);
?

轉(zhuǎn)載于:https://blog.51cto.com/199818/638725

總結(jié)

以上是生活随笔為你收集整理的公司招聘软件研发程序员的一道考题--MS SQL Server数据库数据文件页面头部结构...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。