<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_帅的惊动我党、我军、全国各族人民</title><subtitle type="text">专注于.NET,CLR,Architecture,Debugging,SQL SERVER architecture、performance tuning、troubleshooting.</subtitle><id>http://feed.cnblogs.com/blog/u/35082/rss</id><updated>2012-05-19T15:28:25Z</updated><author><name>帅的惊动我党、我军、全国各族人民。</name><uri>http://www.cnblogs.com/WCFGROUP/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/WCFGROUP/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/35082/rss"/><entry><id>http://www.cnblogs.com/WCFGROUP/archive/2012/05/18/2507940.html</id><title type="text">更新INCLUDE indexes中的非键列会引起索引碎片吗？</title><summary type="text">今天跟CareySon 讨论有些索引碎片的一个事情，他发现下面一篇文章中的有些问题，所以我做了个简单测试，如有不妥，欢迎大家批评指点。http://www.daveturpin.com/2010/04/composite-index-vs-include-covering-index/也就是更新INCLUDE indexes中的非键列会引起索引碎片吗？测试代码如下：CREATE TABLE sp_tablepages(PageFID tinyint,PagePID int,IAMFID tinyint,IAMPID int,ObjectID int,IndexID tinyint,Parti.</summary><published>2012-05-18T08:03:00Z</published><updated>2012-05-18T08:03:00Z</updated><author><name>帅的惊动我党、我军、全国各族人民。</name><uri>http://www.cnblogs.com/WCFGROUP/</uri></author><link rel="alternate" href="http://www.cnblogs.com/WCFGROUP/archive/2012/05/18/2507940.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/WCFGROUP/archive/2012/05/18/2507940.html"/><content type="html">&lt;p&gt; 今天跟&lt;a class="feed_author" href="http://home.cnblogs.com/u/CareySon/"&gt;CareySon&lt;/a&gt; 讨论有些索引碎片的一个事情，他发现下面一篇文章中的有些问题，所以我做了个简单测试，如有不妥，欢迎大家批评指点。&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.daveturpin.com/2010/04/composite-index-vs-include-covering-index/"&gt;http://www.daveturpin.com/2010/04/composite-index-vs-include-covering-index/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;也就是更新INCLUDE indexes中的非键列会引起索引碎片吗？&lt;/p&gt;&lt;p&gt;&amp;nbsp;测试代码如下：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;CREATE TABLE sp_tablepages&lt;br /&gt;(PageFID tinyint,&lt;br /&gt;PagePID int,&lt;br /&gt;IAMFID tinyint,&lt;br /&gt;IAMPID int,&lt;br /&gt;ObjectID int,&lt;br /&gt;IndexID tinyint,&lt;br /&gt;PartitionNumber tinyint,&lt;br /&gt;PartitionID bigint,&lt;br /&gt;iam_chain_type varchar(30),&lt;br /&gt;PageType tinyint,&lt;br /&gt;IndexLevel tinyint,&lt;br /&gt;NextPageFID tinyint,&lt;br /&gt;NextPagePID int,&lt;br /&gt;PrevPageFID tinyint,&lt;br /&gt;PrevPagePID int,&lt;br /&gt;Primary Key (PageFID, PagePID));&lt;/p&gt;&lt;p&gt;go&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;CREATE TABLE bigrows&lt;br /&gt;(&lt;br /&gt;a int ,&lt;br /&gt;b varchar(6400)&lt;br /&gt;);&lt;br /&gt;GO&lt;br /&gt;/****** Object:&amp;nbsp; Index [NonClusteredIndex]&amp;nbsp;&amp;nbsp;&amp;nbsp; Script Date: 2012/5/18 15:05:12 ******/&lt;br /&gt;CREATE NONCLUSTERED INDEX [NonClusteredIndex] ON [dbo].[bigrows]&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;[a] ASC&lt;br /&gt;)&lt;br /&gt;INCLUDE ( &amp;nbsp;[b]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]&lt;br /&gt;GO&lt;/p&gt;&lt;p&gt;/* Insert five rows into the table */&lt;br /&gt;INSERT INTO bigrows&lt;br /&gt;VALUES (5, REPLICATE('a', 1550));&lt;br /&gt;INSERT INTO bigrows&lt;br /&gt;VALUES (10, replicate('b', 1550));&lt;br /&gt;INSERT INTO bigrows&lt;br /&gt;VALUES (15, replicate('c', 1550));&lt;br /&gt;INSERT INTO bigrows&lt;br /&gt;VALUES (20, replicate('d', 1550));&lt;br /&gt;INSERT INTO bigrows&lt;br /&gt;VALUES (25, replicate('e', 1550));&lt;br /&gt;--INSERT INTO bigrows&lt;br /&gt;--VALUES (26, replicate('f', 1600));&lt;br /&gt;GO&lt;br /&gt;TRUNCATE TABLE sp_tablepages;&lt;br /&gt;INSERT INTO sp_tablepages&lt;br /&gt;EXEC ('DBCC IND ( DDDD, 1333579789,&amp;nbsp; 2 )' );&lt;br /&gt;GO&lt;/p&gt;&lt;p&gt;--上面的DDDD, 1333579789 分别为数据库的NAME跟INDEX的ID&lt;/p&gt;&lt;p&gt;TRUNCATE TABLE sp_tablepages;&lt;br /&gt;INSERT INTO sp_tablepages&lt;br /&gt;EXEC ('DBCC IND ( DDDD, 1349579846,&amp;nbsp; 2 )' );&lt;br /&gt;GO&lt;br /&gt;SELECT *&lt;br /&gt;FROM sp_tablepages where pagetype =2 and indexlevel=0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;结果如下：&lt;/p&gt;&lt;p&gt;pagepid&amp;nbsp;pagetype&amp;nbsp;indexlevel&lt;br /&gt;420&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;看一下那个页面里包含什么东西：&lt;/p&gt;&lt;p&gt;执行&lt;br /&gt;DBCC TRACEON(3604);&lt;br /&gt;GO&lt;br /&gt;DBCC PAGE(DDDD, 1, 420, 1);&lt;br /&gt;GO&lt;/p&gt;&lt;p&gt;DBCC execution completed. If DBCC printed error messages, contact your system administrator.&lt;/p&gt;&lt;p&gt;PAGE: (1:420)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;BUFFER:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;BUF @0x04686868&lt;/p&gt;&lt;p&gt;bpage = 0x10D5C000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bhash = 0x00000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bpageno = (1:420)&lt;br /&gt;bdbid = 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; breferences = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bcputicks = 0&lt;br /&gt;bsampleCount = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bUse1 = 21914&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bstat = 0x10b&lt;br /&gt;blog = 0xcc7acccc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bnext = 0x00000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;PAGE HEADER:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Page @0x10D5C000&lt;/p&gt;&lt;p&gt;m_pageId = (1:420)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_headerVersion = 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_type = 2&lt;br /&gt;m_typeFlagBits = 0x0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_level = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_flagBits = 0x8000&lt;br /&gt;m_objId (AllocUnitId.idObj) = 122&amp;nbsp;&amp;nbsp; m_indexId (AllocUnitId.idInd) = 256 &lt;br /&gt;Metadata: AllocUnitId = 72057594045923328&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Metadata: PartitionId = 72057594041532416&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Metadata: IndexId = 2&lt;br /&gt;Metadata: ObjectId = 1349579846&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_prevPage = (0:0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_nextPage = (0:0)&lt;br /&gt;pminlen = 13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_slotCnt = 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_freeCnt = 236&lt;br /&gt;m_freeData = 7946&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_reservedCnt = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_lsn = (42:221:4)&lt;br /&gt;m_xactReserved = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_xdesId = (0:0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_ghostRecCnt = 0&lt;br /&gt;m_tornBits = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DB Frag ID = 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;Allocation Status&lt;/p&gt;&lt;p&gt;GAM (1:2) = ALLOCATED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SGAM (1:3) = ALLOCATED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;PFS (1:1) = 0x60 MIXED_EXT ALLOCATED&amp;nbsp;&amp;nbsp; 0_PCT_FULL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DIFF (1:6) = CHANGED&lt;br /&gt;ML (1:7) = NOT MIN_LOGGED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;DATA:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Slot 0, Offset 0x60, Length 1570, DumpStyle BYTE&lt;/p&gt;&lt;p&gt;Record Type = INDEX_RECORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Record Attributes =&amp;nbsp; NULL_BITMAP VARIABLE_COLUMNS&lt;br /&gt;Record Size = 1570&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Memory Dump @0x0F8FA060&lt;/p&gt;&lt;p&gt;00000000:&amp;nbsp;&amp;nbsp; 36050000 00a20100 00010000 00030000 01002206&amp;nbsp; 6.................".&lt;br /&gt;00000014:&amp;nbsp;&amp;nbsp; 61616161 61616161 61616161 61616161 61616161&amp;nbsp; aaaaaaaaaaaaaaaaaaaa&lt;br /&gt;00000028:&amp;nbsp;&amp;nbsp; 61616161 61616161 61616161 61616161 61616161&amp;nbsp; aaaaaaaaaaaaaaaaaaaa&lt;br /&gt;0000003C:&amp;nbsp;&amp;nbsp; 61616161 61616161 61616161 61616161 61616161&amp;nbsp; aaaaaaaaaaaaaaaaaaaa&lt;/p&gt;&lt;p&gt;---------------------- 此处省略&lt;/p&gt;&lt;p&gt;000005F0:&amp;nbsp;&amp;nbsp; 61616161 61616161 61616161 61616161 61616161&amp;nbsp; aaaaaaaaaaaaaaaaaaaa&lt;br /&gt;00000604:&amp;nbsp;&amp;nbsp; 61616161 61616161 61616161 61616161 61616161&amp;nbsp; aaaaaaaaaaaaaaaaaaaa&lt;br /&gt;00000618:&amp;nbsp;&amp;nbsp; 61616161 61616161 6161&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aaaaaaaaaa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;Slot 1, Offset 0x682, Length 1570, DumpStyle BYTE&lt;/p&gt;&lt;p&gt;Record Type = INDEX_RECORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Record Attributes =&amp;nbsp; NULL_BITMAP VARIABLE_COLUMNS&lt;br /&gt;Record Size = 1570&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Memory Dump @0x0F8FA682&lt;/p&gt;&lt;p&gt;00000000:&amp;nbsp;&amp;nbsp; 360a0000 00a20100 00010001 00030000 01002206&amp;nbsp; 6.................".&lt;br /&gt;00000014:&amp;nbsp;&amp;nbsp; 62626262 62626262 62626262 62626262 62626262&amp;nbsp; bbbbbbbbbbbbbbbbbbbb&lt;br /&gt;00000028:&amp;nbsp;&amp;nbsp; 62626262 62626262 62626262 62626262 62626262&amp;nbsp; bbbbbbbbbbbbbbbbbbbb&lt;br /&gt;&amp;nbsp;00000550:&amp;nbsp;&amp;nbsp; 62626262 62626262 62626262 62626262 62626262&amp;nbsp; bbbbbbbbbbbbbbbbbbbb&lt;/p&gt;&lt;p&gt;----------------------此处省略&lt;/p&gt;&lt;p&gt;000005F0:&amp;nbsp;&amp;nbsp; 62626262 62626262 62626262 62626262 62626262&amp;nbsp; bbbbbbbbbbbbbbbbbbbb&lt;br /&gt;00000604:&amp;nbsp;&amp;nbsp; 62626262 62626262 62626262 62626262 62626262&amp;nbsp; bbbbbbbbbbbbbbbbbbbb&lt;br /&gt;00000618:&amp;nbsp;&amp;nbsp; 62626262 62626262 6262&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bbbbbbbbbb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;Slot 2, Offset 0xca4, Length 1570, DumpStyle BYTE&lt;/p&gt;&lt;p&gt;Record Type = INDEX_RECORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Record Attributes =&amp;nbsp; NULL_BITMAP VARIABLE_COLUMNS&lt;br /&gt;Record Size = 1570&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Memory Dump @0x0F8FACA4&lt;/p&gt;&lt;p&gt;00000000:&amp;nbsp;&amp;nbsp; 360f0000 00a20100 00010002 00030000 01002206&amp;nbsp; 6.................".&lt;br /&gt;00000014:&amp;nbsp;&amp;nbsp; 63636363 63636363 63636363 63636363 63636363&amp;nbsp; cccccccccccccccccccc&lt;br /&gt;00000028:&amp;nbsp;&amp;nbsp; 63636363 63636363 63636363 63636363 63636363&amp;nbsp; cccccccccccccccccccc&lt;/p&gt;&lt;p&gt;---------------------- 此处省略&lt;/p&gt;&lt;p&gt;000005F0:&amp;nbsp;&amp;nbsp; 63636363 63636363 63636363 63636363 63636363&amp;nbsp; cccccccccccccccccccc&lt;br /&gt;00000604:&amp;nbsp;&amp;nbsp; 63636363 63636363 63636363 63636363 63636363&amp;nbsp; cccccccccccccccccccc&lt;br /&gt;00000618:&amp;nbsp;&amp;nbsp; 63636363 63636363 6363&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cccccccccc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;Slot 3, Offset 0x12c6, Length 1570, DumpStyle BYTE&lt;/p&gt;&lt;p&gt;Record Type = INDEX_RECORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Record Attributes =&amp;nbsp; NULL_BITMAP VARIABLE_COLUMNS&lt;br /&gt;Record Size = 1570&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Memory Dump @0x0F8FB2C6&lt;/p&gt;&lt;p&gt;00000000:&amp;nbsp;&amp;nbsp; 36140000 00a20100 00010003 00030000 01002206&amp;nbsp; 6.................".&lt;br /&gt;00000014:&amp;nbsp;&amp;nbsp; 64646464 64646464 64646464 64646464 64646464&amp;nbsp; dddddddddddddddddddd&lt;br /&gt;00000028:&amp;nbsp;&amp;nbsp; 64646464 64646464 64646464 64646464 64646464&amp;nbsp; dddddddddddddddddddd&lt;br /&gt;---------------------- 此处省略&lt;/p&gt;&lt;p&gt;000005F0:&amp;nbsp;&amp;nbsp; 64646464 64646464 64646464 64646464 64646464&amp;nbsp; dddddddddddddddddddd&lt;br /&gt;00000604:&amp;nbsp;&amp;nbsp; 64646464 64646464 64646464 64646464 64646464&amp;nbsp; dddddddddddddddddddd&lt;br /&gt;00000618:&amp;nbsp;&amp;nbsp; 64646464 64646464 6464&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dddddddddd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;Slot 4, Offset 0x18e8, Length 1570, DumpStyle BYTE&lt;/p&gt;&lt;p&gt;Record Type = INDEX_RECORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Record Attributes =&amp;nbsp; NULL_BITMAP VARIABLE_COLUMNS&lt;br /&gt;Record Size = 1570&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Memory Dump @0x0F8FB8E8&lt;/p&gt;&lt;p&gt;00000000:&amp;nbsp;&amp;nbsp; 36190000 00a20100 00010004 00030000 01002206&amp;nbsp; 6.................".&lt;br /&gt;00000014:&amp;nbsp;&amp;nbsp; 65656565 65656565 65656565 65656565 65656565&amp;nbsp; eeeeeeeeeeeeeeeeeeee&lt;br /&gt;---------------------- 此处略微&lt;/p&gt;&lt;p&gt;000005F0:&amp;nbsp;&amp;nbsp; 65656565 65656565 65656565 65656565 65656565&amp;nbsp; eeeeeeeeeeeeeeeeeeee&lt;br /&gt;00000604:&amp;nbsp;&amp;nbsp; 65656565 65656565 65656565 65656565 65656565&amp;nbsp; eeeeeeeeeeeeeeeeeeee&lt;br /&gt;00000618:&amp;nbsp;&amp;nbsp; 65656565 65656565 6565&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eeeeeeeeee&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;OFFSET TABLE:&lt;/p&gt;&lt;p&gt;Row - Offset&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;4 (0x4) - 6376 (0x18e8)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;3 (0x3) - 4806 (0x12c6)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;2 (0x2) - 3236 (0xca4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;1 (0x1) - 1666 (0x682)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;0 (0x0) - 96 (0x60)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;好了，很明显，所以的数据在同一个索引页面里。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;再看一下碎片的情况。&lt;/p&gt;&lt;p&gt;SET NOCOUNT ON&lt;br /&gt;--Use the pubs database&lt;br /&gt;USE DDDD&lt;br /&gt;DBCC SHOWCONTIG (bigrows,NonClusteredIndex)-- WITH ALL_INDEXES&lt;br /&gt;GO&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;DBCC SHOWCONTIG scanning 'bigrows' table...&lt;br /&gt;Table: 'bigrows' (1349579846); index ID: 2, database ID: 10&lt;br /&gt;LEAF level scan performed.&lt;br /&gt;- Pages Scanned................................: 1&lt;br /&gt;- Extents Scanned..............................: 1&lt;br /&gt;- Extent Switches..............................: 0&lt;br /&gt;- Avg. Pages per Extent........................: 1.0&lt;br /&gt;- Scan Density [Best Count:Actual Count].......: 100.00% [1:1]&lt;br /&gt;- Logical Scan Fragmentation ..................: 0.00%&lt;br /&gt;- Extent Scan Fragmentation ...................: 0.00%&lt;br /&gt;&lt;strong&gt;- Avg. Bytes Free per Page.....................: 236.0&lt;br /&gt;- Avg. Page Density (full).....................: 97.08%&lt;br /&gt;&lt;/strong&gt;DBCC execution completed. If DBCC printed error messages, contact your system administrator.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Avg. Bytes Free per Page : 236.0，&amp;nbsp;Avg. Page Density (full) : 97.08%，&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;从这个参数来看应该不错，碎片不严重。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;然后我们更新INCLUDE indexes中的非键列，看看是不是会引起索引碎片。&lt;/p&gt;&lt;p&gt;UPDATE&amp;nbsp; bigrows SET b= replicate('b', 2000)&amp;nbsp; WHERE A=10&lt;br /&gt;&lt;/p&gt;&lt;p&gt;再次运行 &lt;/p&gt;&lt;p&gt;DBCC PAGE(DDDD, 1, 420, 1);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;PAGE: (1:420)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;BUFFER:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;BUF @0x04686868&lt;/p&gt;&lt;p&gt;bpage = 0x10D5C000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bhash = 0x00000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bpageno = (1:420)&lt;br /&gt;bdbid = 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; breferences = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bcputicks = 0&lt;br /&gt;bsampleCount = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bUse1 = 22474&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bstat = 0x9&lt;br /&gt;blog = 0x7acccc7a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bnext = 0x00000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;PAGE HEADER:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Page @0x10D5C000&lt;/p&gt;&lt;p&gt;m_pageId = (1:420)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_headerVersion = 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_type = 2&lt;br /&gt;m_typeFlagBits = 0x0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_level = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_flagBits = 0x200&lt;br /&gt;m_objId (AllocUnitId.idObj) = 122&amp;nbsp;&amp;nbsp; m_indexId (AllocUnitId.idInd) = 256 &lt;br /&gt;Metadata: AllocUnitId = 72057594045923328&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Metadata: PartitionId = 72057594041532416&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Metadata: IndexId = 2&lt;br /&gt;Metadata: ObjectId = 1349579846&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_prevPage = (0:0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_nextPage = (1:412)&lt;br /&gt;pminlen = 13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_slotCnt = 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_freeCnt = 4502&lt;br /&gt;m_freeData = 5256&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_reservedCnt = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_lsn = (42:255:43)&lt;br /&gt;m_xactReserved = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_xdesId = (0:0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_ghostRecCnt = 0&lt;br /&gt;m_tornBits = -1654904262&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DB Frag ID = 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;Allocation Status&lt;/p&gt;&lt;p&gt;GAM (1:2) = ALLOCATED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SGAM (1:3) = NOT ALLOCATED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;PFS (1:1) = 0x60 MIXED_EXT ALLOCATED&amp;nbsp;&amp;nbsp; 0_PCT_FULL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DIFF (1:6) = CHANGED&lt;br /&gt;ML (1:7) = NOT MIN_LOGGED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;DATA:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Slot 0, Offset 0x60, Length 1570, DumpStyle BYTE&lt;/p&gt;&lt;p&gt;Record Type = INDEX_RECORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Record Attributes =&amp;nbsp; NULL_BITMAP VARIABLE_COLUMNS&lt;br /&gt;Record Size = 1570&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Memory Dump @0x0724C060&lt;/p&gt;&lt;p&gt;00000000:&amp;nbsp;&amp;nbsp; 36050000 00a20100 00010000 00030000 01002206&amp;nbsp; 6.................".&lt;br /&gt;00000014:&amp;nbsp;&amp;nbsp; 61616161 61616161 61616161 61616161 61616161&amp;nbsp; aaaaaaaaaaaaaaaaaaaa&lt;br /&gt;00000028:&amp;nbsp;&amp;nbsp; 61616161 61616161 61616161 61616161 61616161&amp;nbsp; aaaaaaaaaaaaaaaaaaaa&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;---------------------- 此处省略&lt;/p&gt;&lt;p&gt;&amp;nbsp;00000604:&amp;nbsp;&amp;nbsp; 61616161 61616161 61616161 61616161 61616161&amp;nbsp; aaaaaaaaaaaaaaaaaaaa&lt;br /&gt;00000618:&amp;nbsp;&amp;nbsp; 61616161 61616161 6161&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aaaaaaaaaa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;Slot 1, Offset 0xca4, Length 2020, DumpStyle BYTE&lt;/p&gt;&lt;p&gt;Record Type = INDEX_RECORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Record Attributes =&amp;nbsp; NULL_BITMAP VARIABLE_COLUMNS&lt;br /&gt;Record Size = 2020&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Memory Dump @0x0724CCA4&lt;/p&gt;&lt;p&gt;00000000:&amp;nbsp;&amp;nbsp; 360a0000 00a20100 00010001 00030000 0100e407&amp;nbsp; 6...................&lt;br /&gt;00000014:&amp;nbsp;&amp;nbsp; 62626262 62626262 62626262 62626262 62626262&amp;nbsp; bbbbbbbbbbbbbbbbbbbb&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;---------------------- 此处省略&lt;/p&gt;&lt;p&gt;000007D0:&amp;nbsp;&amp;nbsp; 62626262 62626262 62626262 62626262 62626262&amp;nbsp; bbbbbbbbbbbbbbbbbbbb&lt;/p&gt;&lt;p&gt;OFFSET TABLE:&lt;/p&gt;&lt;p&gt;Row - Offset&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;1 (0x1) - 3236 (0xca4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;0 (0x0) - 96 (0x60)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&lt;br /&gt;DBCC execution completed. If DBCC printed error messages, contact your system administrator.&lt;br /&gt;可以明显的看到420页面中的C,D,E数据已经移到了新的页面。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;再看一下碎片的情况。&lt;/p&gt;&lt;p&gt;SET NOCOUNT ON&lt;br /&gt;--Use the pubs database&lt;br /&gt;USE DDDD&lt;br /&gt;DBCC SHOWCONTIG (bigrows,NonClusteredIndex)-- WITH ALL_INDEXES&lt;br /&gt;GO&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;DBCC SHOWCONTIG scanning 'bigrows' table...&lt;br /&gt;Table: 'bigrows' (1349579846); index ID: 2, database ID: 10&lt;br /&gt;LEAF level scan performed.&lt;br /&gt;- Pages Scanned................................: 2&lt;br /&gt;- Extents Scanned..............................: 2&lt;br /&gt;- Extent Switches..............................: 1&lt;br /&gt;- Avg. Pages per Extent........................: 1.0&lt;br /&gt;- Scan Density [Best Count:Actual Count].......: 50.00% [1:2]&lt;br /&gt;- Logical Scan Fragmentation ..................: 50.00%&lt;br /&gt;- Extent Scan Fragmentation ...................: 0.00%&lt;br /&gt;&lt;strong&gt;- Avg. Bytes Free per Page.....................: 3941.0&lt;br /&gt;- Avg. Page Density (full).....................: 51.31%&lt;br /&gt;&lt;/strong&gt;DBCC execution completed. If DBCC printed error messages, contact your system administrator.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Avg. Bytes Free per Page : &lt;strong&gt;3941&lt;/strong&gt;.0， Avg. Page Density (full) :&lt;strong&gt;51.31&lt;/strong&gt;%，&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;从这个参数来看，更新INCLUDE indexes中的非键列明显产生了索引碎片。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;第一次写技术博文，并且我对索引碎片的理解也是刚开始研究，写的不大好，希望各位多见谅。&lt;/p&gt; &lt;img src="http://www.cnblogs.com/WCFGROUP/aggbug/2507940.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/WCFGROUP/archive/2012/05/18/2507940.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/WCFGROUP/archive/2012/05/18/2507483.html</id><title type="text">what’s up?</title><summary type="text">(idiomatic, colloquial) What are you doing?; what is happening?(informal) How are you?; how are you feeling?(idiomatic, colloquial) What’s the matter?(rhetorical question, colloquial) A casual greeting with a meaning similar to how are you? or nice to meet you.Synonyms(how are you?): wassup, wazzu..</summary><published>2012-05-18T03:23:00Z</published><updated>2012-05-18T03:23:00Z</updated><author><name>帅的惊动我党、我军、全国各族人民。</name><uri>http://www.cnblogs.com/WCFGROUP/</uri></author><link rel="alternate" href="http://www.cnblogs.com/WCFGROUP/archive/2012/05/18/2507483.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/WCFGROUP/archive/2012/05/18/2507483.html"/><content type="html"> &lt;span id="Phrase" class="mw-headline"&gt; &lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="ib-brac qualifier-brac"&gt;(&lt;/span&gt;&lt;span class="ib-content qualifier-content"&gt;&lt;a title="Appendix:Glossary" href="http://en.wiktionary.org/wiki/Appendix:Glossary#idiomatic"&gt;idiomatic&lt;/a&gt;&lt;span class="ib-comma qualifier-comma"&gt;,&lt;/span&gt; &lt;a title="Appendix:Glossary" href="http://en.wiktionary.org/wiki/Appendix:Glossary#colloquial"&gt;colloquial&lt;/a&gt;&lt;/span&gt;&lt;span class="ib-brac qualifier-brac"&gt;)&lt;/span&gt; What are you doing?; what is &lt;a title="happening" href="http://en.wiktionary.org/wiki/happening"&gt;happening&lt;/a&gt;?&lt;/li&gt;&lt;li&gt;&lt;span class="ib-brac qualifier-brac"&gt;(&lt;/span&gt;&lt;span class="ib-content qualifier-content"&gt;&lt;a title="Appendix:Glossary" href="http://en.wiktionary.org/wiki/Appendix:Glossary#informal"&gt;informal&lt;/a&gt;&lt;/span&gt;&lt;span class="ib-brac qualifier-brac"&gt;)&lt;/span&gt; &lt;a title="how are you" href="http://en.wiktionary.org/wiki/how_are_you"&gt;How are you&lt;/a&gt;?; how are you &lt;a title="feeling" href="http://en.wiktionary.org/wiki/feeling"&gt;feeling&lt;/a&gt;?&lt;/li&gt;&lt;li&gt;&lt;span class="ib-brac qualifier-brac"&gt;(&lt;/span&gt;&lt;span class="ib-content qualifier-content"&gt;&lt;a title="Appendix:Glossary" href="http://en.wiktionary.org/wiki/Appendix:Glossary#idiomatic"&gt;idiomatic&lt;/a&gt;&lt;span class="ib-comma qualifier-comma"&gt;,&lt;/span&gt; &lt;a title="Appendix:Glossary" href="http://en.wiktionary.org/wiki/Appendix:Glossary#colloquial"&gt;colloquial&lt;/a&gt;&lt;/span&gt;&lt;span class="ib-brac qualifier-brac"&gt;)&lt;/span&gt; &lt;a title="what's the matter" href="http://en.wiktionary.org/wiki/what%27s_the_matter"&gt;What&amp;#8217;s the matter&lt;/a&gt;?&lt;/li&gt;&lt;li&gt;&lt;span class="ib-brac qualifier-brac"&gt;(&lt;/span&gt;&lt;span class="ib-content qualifier-content"&gt;&lt;a title="Appendix:Glossary" href="http://en.wiktionary.org/wiki/Appendix:Glossary#rhetorical_question"&gt;rhetorical question&lt;/a&gt;&lt;span class="ib-comma qualifier-comma"&gt;,&lt;/span&gt; &lt;a title="Appendix:Glossary" href="http://en.wiktionary.org/wiki/Appendix:Glossary#colloquial"&gt;colloquial&lt;/a&gt;&lt;/span&gt;&lt;span class="ib-brac qualifier-brac"&gt;)&lt;/span&gt; A &lt;a title="casual" href="http://en.wiktionary.org/wiki/casual"&gt;casual&lt;/a&gt; &lt;a title="greeting" href="http://en.wiktionary.org/wiki/greeting"&gt;greeting&lt;/a&gt; with a &lt;a title="meaning" href="http://en.wiktionary.org/wiki/meaning"&gt;meaning&lt;/a&gt; similar to &lt;em&gt;&lt;a title="how are you" href="http://en.wiktionary.org/wiki/how_are_you"&gt;how are you&lt;/a&gt;&lt;/em&gt;? or &lt;em&gt;&lt;a title="nice to meet you" href="http://en.wiktionary.org/wiki/nice_to_meet_you"&gt;nice to meet you&lt;/a&gt;&lt;/em&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;&lt;span class="editsection"&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;span id="Synonyms" class="mw-headline"&gt;Synonyms&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="ib-brac"&gt;&lt;span class="qualifier-brac"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span class="ib-content"&gt;&lt;span class="qualifier-content"&gt;how are you?&lt;/span&gt;&lt;/span&gt;&lt;span class="ib-brac"&gt;&lt;span class="qualifier-brac"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span class="ib-colon"&gt;&lt;span class="sense-qualifier-colon"&gt;:&lt;/span&gt;&lt;/span&gt; &lt;a title="wassup" href="http://en.wiktionary.org/wiki/wassup"&gt;wassup&lt;/a&gt;, &lt;a title="wazzup" href="http://en.wiktionary.org/wiki/wazzup"&gt;wazzup&lt;/a&gt;, &lt;a title="sup" href="http://en.wiktionary.org/wiki/sup"&gt;sup&lt;/a&gt;, &lt;a title="'sup" href="http://en.wiktionary.org/wiki/%27sup"&gt;&amp;#8217;sup&lt;/a&gt;, &lt;a title="what up" href="http://en.wiktionary.org/wiki/what_up"&gt;what up&lt;/a&gt;?, &lt;a title="what's happening" href="http://en.wiktionary.org/wiki/what%27s_happening"&gt;what&amp;#8217;s happening&lt;/a&gt;?, &lt;a title="what's new" href="http://en.wiktionary.org/wiki/what%27s_new"&gt;what&amp;#8217;s new&lt;/a&gt;?&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://www.cnblogs.com/WCFGROUP/aggbug/2507483.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/WCFGROUP/archive/2012/05/18/2507483.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/WCFGROUP/archive/2012/05/07/2487475.html</id><title type="text">Here we go&amp;amp;&amp;amp;Here you are</title><summary type="text">Explanation:These phrases can be used in a manner of ways by different people but maybe this will provide you with a framework.Here we godiscovery : here we go ex. finding something.Here we go, I have been looking for my glasses all morning.initiation : here we go ex. embarking on a trip.Here we go,</summary><published>2012-05-07T07:23:00Z</published><updated>2012-05-07T07:23:00Z</updated><author><name>帅的惊动我党、我军、全国各族人民。</name><uri>http://www.cnblogs.com/WCFGROUP/</uri></author><link rel="alternate" href="http://www.cnblogs.com/WCFGROUP/archive/2012/05/07/2487475.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/WCFGROUP/archive/2012/05/07/2487475.html"/><content type="html">&lt;span class="med1"&gt;&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;br /&gt;&lt;!-- google_ad_section_start --&gt;These phrases can be used in a manner of ways by different people but maybe this will provide you with a framework.&lt;br /&gt;&lt;br /&gt;Here we go&lt;br /&gt;discovery : here we go ex. finding something.&lt;br /&gt;Here we go, I have been looking for my glasses all morning.&lt;br /&gt;initiation : here we go ex. embarking on a trip.&lt;br /&gt;Here we go, next stop the North Pole&lt;br /&gt;presentation : here we go ex. serving food on the table.&lt;br /&gt;Here we go, the tasty cockroach flambe you ordered.&lt;br /&gt;&lt;br /&gt;Here you are&lt;br /&gt;discovery : here you are ex. finding someone or something.&lt;br /&gt;Here you are, I have been looking for you for twenty minutes.&lt;br /&gt;presentation : here you are ex. serving food on the table.&lt;br /&gt;Here you are, two vanilla cokes.&lt;br /&gt;&lt;!-- google_ad_section_end --&gt;&lt;br /&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/WCFGROUP/aggbug/2487475.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/WCFGROUP/archive/2012/05/07/2487475.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/WCFGROUP/archive/2011/09/17/2179776.html</id><title type="text">对ASP.NET网站执行代码覆盖率测试发生System.Security.VerificationException异常的解决方案</title><summary type="text">转（http://www.cnblogs.com/killmyday/archive/2010/11/16/1878847.html）当你对ASP.NET 4.0网站执行代码覆盖率测试时，可能会遇到下面这个异常：System.Security.VerificationException: Operation could destabilize the runtime.一般来说，VerificiationException都是关于代码访问安全（CAS）的问题，.NET在执行托管代码之前，首先会验证这个托管程序的强签名，通过确定其来源来判定该托管程序应该拥有的权限。比如说，如果托管程序是微软公司的</summary><published>2011-09-17T11:19:00Z</published><updated>2011-09-17T11:19:00Z</updated><author><name>帅的惊动我党、我军、全国各族人民。</name><uri>http://www.cnblogs.com/WCFGROUP/</uri></author><link rel="alternate" href="http://www.cnblogs.com/WCFGROUP/archive/2011/09/17/2179776.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/WCFGROUP/archive/2011/09/17/2179776.html"/><content type="html">&lt;p&gt;转（&lt;a href="http://www.cnblogs.com/killmyday/archive/2010/11/16/1878847.html"&gt;http://www.cnblogs.com/killmyday/archive/2010/11/16/1878847.html&lt;/a&gt;）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: SimSun"&gt;当你对&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;ASP.NET 4.0&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;网站执行代码覆盖率测试时，可能会遇到下面这个异常：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background: yellow"&gt;System.Security.VerificationException: Operation could destabilize the runtime.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: SimSun"&gt;一般来说，&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;VerificiationException&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;都是关于代码访问安全（&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;CAS&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;）的问题，&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;.NET&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;在执行托管代码之前，首先会验证这个托管程序的强签名，通过确定其来源来判定该托管程序应该拥有的权限。比如说，如果托管程序是微软公司的签名，我们当然是无比的信任它&amp;#8212;除非你不用&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;Windows&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;操作系统。机器管理员也可以依据托管程序的来源来决定该托管程序应该拥有的权限，例如读磁盘文件、操作注册表这些操作都是可以配置的权限。比方说，管理员可以在机器上设置，由&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;360&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;以及&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;QQ&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;发行的托管程序，只能访问显卡（绘制界面）以及读写网络，而不能执行访问磁盘文件等操作。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: SimSun"&gt;执行代码安全的前提是，整个程序完全是由托管代码写成的，如果托管代码里混合非托管代码，无论是通过托管&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;C++&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;写成的，还是里面执行了平台调用（&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;P/Invoke&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;）。就破坏规矩了，因为非托管代码可以使用指针操作，以及调用其它非托管代码的方式，甚至&amp;#8212;启动一个进程，然后将原来的托管程序杀掉。因此，进行代码访问安全的前提条件是，整个应用程序都是使用托管代码写成的，为了保证这个前提条件，&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;CLR&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;在执行托管程序之前，首先会验证程序是否满足&amp;#8212;整个程序都是用托管代码编写这一条件。如果不满足这个条件，那么&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;CLR&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;会扔出&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;VerificationException&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;，中断托管程序的执行，在&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;.NET SDK&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;里，你可以通过&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;PEVerify.exe&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;这个程序验证一个程序是否可以通过这个验证。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: SimSun"&gt;当然，你可能会说，很多本机运行的托管程序，即使调用了非托管代码，例如执行了一个平台调用，还是可以照常执行啊。那是因为，当你的程序使用了&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;/unsafe&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;编译选项时，&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;C#&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;编译器会自动在托管程序添加上&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;SuppressUnmanagedCodeSecurityAttribute&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;这个属性，这个属性告诉&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;CLR&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;。如果程序是在本机执行，那么就跳过验证是否调用了非托管代码这一环节。有兴趣的读者可以把调用非托管代码的托管程序放在一个网络路径上，从那里执行，应该就可以看到&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;SecurityException&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;了。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: SimSun"&gt;回到&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;ASP.NET&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;网站的情形，当你将&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;ASP.NET&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;网站的装配件（&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;Assembly&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;）使用&lt;/span&gt;&lt;span style="font-family: Calibri"&gt; vsinstr.exe&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;创建一个可以收集代码覆盖率的装配件（&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;Assembly&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;）时，&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;vsinstr.exe&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;实际上在装配件（&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;Assembly&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;）的&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;IL&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;代码里，添加了很多收集代码覆盖率的代码。这个过程可以参考我以前的文章：&lt;/span&gt;&lt;a href="http://www.cnblogs.com/killmyday/archive/2009/12/19/1627994.html"&gt;&lt;font color="#8e1a10"&gt;&lt;span style="font-family: Calibri"&gt;软件自动化测试&amp;#8212;&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;代码覆盖率&lt;/span&gt;&lt;/font&gt;&lt;/a&gt;&lt;span style="font-family: SimSun"&gt;。这些代码里，有一个很重要的步骤，就是联系本机运行的&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;VSPerfMon.exe&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;，&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;VSPerfMon.exe&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;是用来收集整个机器上代码覆盖率的，不知道是什么愿意，联系本机运行的&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;VSPerfMon.exe&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;过程是通过非托管的&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;API&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;实现的，这就意味着&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;vsinstr.exe&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;生成的&lt;/span&gt; &lt;span style="font-family: SimSun"&gt;装配件（&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;Assembly&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;）就必须调用到非托管代码，因此也就通过&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;CLR&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;的验证过程。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;在2.0的时候，你可能还不会碰到这个问题，但是在4.0里面，你就很有可能碰到这个问题&amp;#8212;特别是在网站运行在IIS下的话，经常发生。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;既然道理已经明白了，修复起来也很容易：&lt;/p&gt;&lt;ol style="font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: SimSun; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal" type="1"&gt;&lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" value="1"&gt;&lt;span style="font-style: normal; font-family: SimSun; font-size: 11pt; font-weight: normal"&gt;将网站，以及所有需要做代码覆盖率的装配件（&lt;/span&gt;&lt;span style="font-style: normal; font-family: Calibri; font-size: 11pt; font-weight: normal"&gt;Assembly&lt;/span&gt;&lt;span style="font-style: normal; font-family: SimSun; font-size: 11pt; font-weight: normal"&gt;）&amp;#8212;也就是被&lt;/span&gt;&lt;span style="font-style: normal; font-family: Calibri; font-size: 11pt; font-weight: normal"&gt;vsinstr.exe&lt;/span&gt;&lt;span style="font-style: normal; font-family: SimSun; font-size: 11pt; font-weight: normal"&gt;处理过的装配件（&lt;/span&gt;&lt;span style="font-style: normal; font-family: Calibri; font-size: 11pt; font-weight: normal"&gt;Assembly&lt;/span&gt;&lt;span style="font-style: normal; font-family: SimSun; font-size: 11pt; font-weight: normal"&gt;），在它们的源代码（既然你要收集代码覆盖率，那肯定是由源代码的）里的&lt;/span&gt;&lt;span style="font-style: normal; font-family: Calibri; font-size: 11pt; font-weight: normal"&gt;AssemblyInfo.cs&lt;/span&gt;&lt;span style="font-style: normal; font-family: SimSun; font-size: 11pt; font-weight: normal"&gt;里，加上下面这一行&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;[assembly: SecurityRules(SecurityRuleSet.Level1, SkipVerificationInFullTrust=true)]&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style="font-style: normal; margin-top: 0in; unicode-bidi: embed; font-family: SimSun; direction: ltr; margin-bottom: 0in; margin-left: 0.375in; font-size: 11pt; font-weight: normal" type="1"&gt;&lt;li style="margin-top: 0px; margin-bottom: 0px; vertical-align: middle" value="2"&gt;&lt;span style="font-style: normal; font-family: SimSun; font-size: 11pt; font-weight: normal"&gt;然后在网站的&lt;/span&gt;&lt;span style="font-style: normal; font-family: Calibri; font-size: 11pt; font-weight: normal"&gt;web.config&lt;/span&gt;&lt;span style="font-style: normal; font-family: SimSun; font-size: 11pt; font-weight: normal"&gt;里，做如下修改（这个选项也可以通过&lt;/span&gt;&lt;span style="font-style: normal; font-family: Calibri; font-size: 11pt; font-weight: normal"&gt;IISAdmin.exe&lt;/span&gt;&lt;span style="font-style: normal; font-family: SimSun; font-size: 11pt; font-weight: normal"&gt;修改）：&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;system.web&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;trust level="Medium" /&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&amp;#8230;&lt;/p&gt;&lt;p&gt;&amp;lt;/system.web&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: SimSun"&gt;说明，&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;SecurityRules&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;这个属性，告诉&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;CLR&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;，这个装配件（&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;Assembly&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;）有自定义的安全机制，&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;SecurityRuleSet.Level1&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;说明采用&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;.NET 2.0&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;下面的安全验证策略，&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;SkipVerificationInFullTrust&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;告诉&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;CLR&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;，只有网站运行在&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;FullTrust&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;模式下，才可以跳过安全验证。最后第二步就是将网站的运行模式改在&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;FullTrust&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;模式下。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;script type="text/javascript"&gt;if ($ != jQuery) {$ = jQuery.noConflict();}var isLogined = true;var cb_blogId = 53161;var cb_entryId = 1878847;var cb_blogApp = "killmyday";var cb_blogUserGuid = "ae1747ea-84fe-dd11-9e4d-001cf0cd104b";var cb_entryCreatedDate = '2010/11/16 20:38:00';&lt;/script&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/WCFGROUP/aggbug/2179776.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/WCFGROUP/archive/2011/09/17/2179776.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/WCFGROUP/archive/2011/02/11/1951241.html</id><title type="text">同时收到IBM ISSC跟微软MSN 中国的Offer，我该选择哪个，请园友给点意见，纠结中....</title><summary type="text">同时收到IBM ISSC跟微软MSN 中国的Offer，我该选择哪个，请园友给点意见，纠正中....</summary><published>2011-02-11T04:44:00Z</published><updated>2011-02-11T04:44:00Z</updated><author><name>帅的惊动我党、我军、全国各族人民。</name><uri>http://www.cnblogs.com/WCFGROUP/</uri></author><link rel="alternate" href="http://www.cnblogs.com/WCFGROUP/archive/2011/02/11/1951241.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/WCFGROUP/archive/2011/02/11/1951241.html"/><content type="html">该文被密码保护。</content></entry><entry><id>http://www.cnblogs.com/WCFGROUP/archive/2009/11/29/1613147.html</id><title type="text">美式音标基本知识</title><summary type="text">阅读提示：下面使用的音标，棕色的为国际音标IPA，即英音，暗蓝色的为美语KK音标，即美音，深蓝色的则是可在线播放的音频文件，需Realplayer播放。有关美音的讲解是以英音为参照点的。如有些音标符号显示不出来则说明你的机器缺少相应的字体文件，可以跟帖告诉我一声，然后再共同想办法好了。[1] 奇妙的[ r ]音。[ r ]音是最具区别性特征的美语音标之一。 当[r]音在词首时基本没什么可说的，英美语没什么不同。而当它出现在词中与其它单元音组合在一起时，美语中的[ r ]便成了个典型的卷舌音，如bIRd, teachER等。这个[r]音简单易学， 如teacher一词，你先按国际音标的发法，发出</summary><published>2009-11-29T07:52:00Z</published><updated>2009-11-29T07:52:00Z</updated><author><name>帅的惊动我党、我军、全国各族人民。</name><uri>http://www.cnblogs.com/WCFGROUP/</uri></author><link rel="alternate" href="http://www.cnblogs.com/WCFGROUP/archive/2009/11/29/1613147.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/WCFGROUP/archive/2009/11/29/1613147.html"/><content type="text">阅读提示：下面使用的音标，棕色的为国际音标IPA，即英音，暗蓝色的为美语KK音标，即美音，深蓝色的则是可在线播放的音频文件，需Realplayer播放。有关美音的讲解是以英音为参照点的。如有些音标符号显示不出来则说明你的机器缺少相应的字体文件，可以跟帖告诉我一声，然后再共同想办法好了。[1] 奇妙的[ r ]音。[ r ]音是最具区别性特征的美语音标之一。 当[r]音在词首时基本没什么可说的，英美语没什么不同。而当它出现在词中与其它单元音组合在一起时，美语中的[ r ]便成了个典型的卷舌音，如bIRd, teachER等。这个[r]音简单易学， 如teacher一词，你先按国际音标的发法，发出</content></entry><entry><id>http://www.cnblogs.com/WCFGROUP/archive/2008/08/01/1258064.html</id><title type="text">ASP.Net 2.0 - Master Pages: Tips, Tricks, and Traps </title><summary type="text"/><published>2008-08-01T04:03:00Z</published><updated>2008-08-01T04:03:00Z</updated><author><name>帅的惊动我党、我军、全国各族人民。</name><uri>http://www.cnblogs.com/WCFGROUP/</uri></author><link rel="alternate" href="http://www.cnblogs.com/WCFGROUP/archive/2008/08/01/1258064.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/WCFGROUP/archive/2008/08/01/1258064.html"/><content type="text"/></entry></feed>
