摘要: 该文章整理自:http://www.sqlnotes.info/2011/10/31/page-type/ SQL Server中包含多种不同类型的页,来满足数据存储的需求。不管是什么类型的页,它们的存储结构都是相同的。每个数据文件都包含相当数量的由8KB组成的页,即每页有8192bytes可用,每页都有96byte用于页头的存储,剩下的空间才用来存储实际的数据,在页的最后是数据行偏移数组,也可以叫“页槽”数组,我们可以把一个页看做是有一个个方格的书橱,哪行数据占用了哪个槽,都在页尾的位置进行标示,并且页尾数组的写入顺序是倒叙的,这样就可以有效的利用页空间。由此可以预见,页面上的“槽”... 阅读全文
posted @ 2014-03-07 15:31 czperfectaction 阅读(2011) 评论(2) 推荐(3) 编辑
摘要: 最近在为Windows Server 2008 R2 打sp1补丁时出现“发生未知错误”,详细信息错误:0x800f0818: google后找到解决问题步骤,参照:http://www.wikihow.com/Fix-Error-0x800F0818-when-Installing-Service-Pack-1-(Windows-7)1、下载与你操作系统对应的系统快速升级工具:System Update Readiness Tool 当前为:http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=146682、下载完成后打.. 阅读全文
posted @ 2014-01-06 11:30 czperfectaction 阅读(1388) 评论(0) 推荐(0) 编辑
摘要: 今天早上服务器出现大面积的阻塞,上去排查blocking,最后大概确定的问题是:rebuild index job(243) --->blocked--->sp_replupdateschema(244)(this is relatedsnapshot job)sp_replupdateschema(244) -->blocked--->many user process索引重建与快照进程之间发生冲突,不停的发生死锁!(事实确实是rebulid_index job和snapshot在同一时刻启动的)看来还要避免这两者同时运行啊。 阅读全文
posted @ 2013-11-08 10:48 czperfectaction 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 由于2012在内存管理中之前的Single-page Allocator和Multi-page Allocator合并为Any size page Allocator,所以在一些内存系统视图和性能计数器的内存相关也发生了一些改变。1、 DMV的改变。SQL Server 2012SQL Server 2008 R2sys.dm_os_sys_infophysical_memory_kbphysical_memory_in_bytesvirtual_memory_kbvirtual_memory_in_bytescommitted_kbbpool_committedcommitted_targe 阅读全文
posted @ 2013-04-17 15:40 czperfectaction 阅读(722) 评论(1) 推荐(0) 编辑
摘要: 我们都知道,凡是数据库都会尽量把使用过的数据页缓存到内存中,以便下次使用时能尽快的被获取,SQL Server也不例外。但是对于DBCC CHECK命令也是如此吗?你猜? 我用我的测试环境中最大的一张表,202兆,进行测试。 首先我们清空缓存,然后执行dbcc checktable,查看DataPage和FreePage发生了什么变化dbcc dropcleanbuffersgodbcc checktable('t_test')go 结论:DBCC Check命令虽然也会毫无例外的使用DataPage的空间,但是却不进行缓存,而是执行完毕后马上释放掉了,呵呵,有点意思。 阅读全文
posted @ 2013-02-17 17:06 czperfectaction 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 作为一名DBA,经常会处理一些比较棘手的服务无响应问题,鉴于事态的严重性,多数DBA可能直接用“重启”大法,以便尽快的恢复生产环境的正常运转,但是多数情况下我们却无法究其原因,即使产生了dump文件,没有微软的支持,我们同样被蒙在鼓里,幸好微软给我们留了一条“后路”,供我们在SQL服务无法连接时,使用它连接并查看“病因”,那就是DAC,dedicated administrator connection,管理员专用连接。 有关管理员专用连接请查看:http://msdn.microsoft.com/zh-cn/library/ms189595.aspx 开启远程管理连接:该选项默认是关... 阅读全文
posted @ 2013-02-16 10:47 czperfectaction 阅读(1372) 评论(0) 推荐(0) 编辑
摘要: 场景: 服务器64位,SQL SERVER 2008R2SP1,32G内存,16个CPU,sql server分配内存大约29G。 发布一张小表,分发代理停止在正在将大容量复制到表xxx,该表仅有几十行数据,总量最多几百K查询订阅服务器分发进程,显示bulk insert 呈suspend状态,等待类型为:RESOURCE_SEMAPHORE相关信息如图:相关该SESSION的内存请求信息如下:可以看到该进程申请内存达5G多,这是为什么?内存信息如下:即使DBCC FREEPROCCACHE也不起作用,释放不出内存,发布空表没有问题,因为不用bulk insert重启服务问题可以解决。 阅读全文
posted @ 2011-12-22 10:56 czperfectaction 阅读(410) 评论(0) 推荐(0) 编辑
摘要: DROPTABLET_TESTCREATETABLET_TEST(IDINTIDENTITYPRIMARYKEY,STATUSBIT)INSERTINTOT_TESTSELECT0GO100000INSERTINTOT_TESTSELECT1CREATEINDEXIXF_T_TEST_STATUSONT_TEST(STATUS)WHERESTATUS=1UPDATESTATISTICST_TESTwithfullscanDBCCFREEPROCCACHE--正常查询SELECT*FROMT_TESTWHERESTATUS=1--参数化查询SP_EXECUTESQLN'SELECT*FR 阅读全文
posted @ 2011-12-13 10:34 czperfectaction 阅读(537) 评论(2) 推荐(0) 编辑
摘要: --setstatisticsxmlonCREATETABLET_TEST(IDINTIDENTITYPRIMARYKEY,CreateTimeDATE)INSERTINTOT_TESTSELECT'2011-11-04'UNIONALLSELECT'2011-11-04'UNIONALLSELECT'2011-11-04'UNIONALLSELECT'2011-11-05'UNIONALLSELECT'2011-11-05'UNIONALLSELECT'2011-11-05'SELECT*FROM 阅读全文
posted @ 2011-12-09 15:32 czperfectaction 阅读(528) 评论(4) 推荐(0) 编辑
摘要: usetempdbgoifobject_id('ta')isnotnulldroptabletagocreatetableta(idintidentityprimarykey,col1char(8000),col2char(20),col3varchar(20))goaltertabletadropcolumncol1goaltertabletaaddcol4varchar(1000)go/*警告:已经创建表'ta',但是它的最大行大小超过了允许的最大字节数8060。如果得到的行超过此大小限制,则对此表的INSERT或UPDATE操作将失败。*/--成功inse 阅读全文
posted @ 2011-11-08 14:36 czperfectaction 阅读(1027) 评论(0) 推荐(0) 编辑