SQL Server调优系列进阶篇(如何维护数据库索引)

  1. SQL Server调优系列基础篇
  2. SQL Server调优系列基础篇(常用运算符总结——三种物理连接方式剖析)
  3. SQL Server调优系列基础篇(联合运算符总结)
  4. SQL Server调优系列基础篇(并行运算总结一)
  5. SQL Server调优系列基础篇(并行运算总结篇二)
  6. SQL Server调优系列基础篇(索引运算总结)
  7. SQL Server调优系列基础篇(子查询运算总结)
  8. SQL Server调优系列进阶篇(查询优化器的运行方式)
  9. SQL Server调优系列进阶篇(查询语句运行几个指标值监测)
  10. SQL Server调优系列进阶篇(深入剖析统计信息)
  11. SQL Server调优系列进阶篇(如何索引调优)
  12. SQL Server调优系列进阶篇(如何维护数据库索引)

技术准备

数据库版本为SQL Server2012,前几篇文章用的是SQL Server2008RT,内容区别不大,利用微软的以前的案例库(Northwind)进行分析,部分内容也会应用微软的另一个案例库AdventureWorks。

相信了解SQL Server的朋友,对这两个库都不会太陌生。

一、创建索引

当我们要开始对表进行索引的创建的时候,首先明确的是,一张表内只能创建一个聚集索引,最多可以创建最多249个非聚集索引(SQL Server2005),在SQL Server2008以后聚集索引数提升至999个,上一篇文章我们知道对于聚集索引项一般要创建上,而非聚集索引项要根据日常的T-SQL语句进行选择。

关于索引的选择是一个很考验调优能力的事情,大部分的情况下优质的索引新建全靠经验而论,有兴趣的可以点击查阅我前面的一系列关于分析查询计划的文章,掌握住里面的精髓才能有的放矢。

当然,小白级别的也可以参照如下方法尝试进行创建:

由于SQL Server有着自己的一套调优技巧,所以在我们每次运行的T-SQL语句应该怎样优化,SQL Server是了如指掌的,所以它会将缺失的索引项进行记录,用于提示使用者,尝试去建立这些索引。

主要记录在以下几个DMV中

sys.dm_db_missing_index_details

sys.dm_db_missing_index_groups

sys.dm_db_missing_index_group_stats

sys.dm_db_missing_index_columns(index_handle)

sys.dm_db_missing_index_details
关于这些个DMV的使用,来举一个例子:

Continue reading “SQL Server调优系列进阶篇(如何维护数据库索引)”

周瑜故里游

在周瑜逝世1800年后的第一个春天,我们走进周瑜故里——安徽舒城县,来到周瑜的出生地——周瑜城。

周瑜是建安时期杰出的政治家和军事战略家,“赤壁之战”不仅奠定了三国鼎立的历史格局,也成就了这场战争的策划者、指挥者周瑜的军事伟业。周瑜也成为中国历史上妇孺皆知的历史人物。

“地以人显”,舒城因为出了周瑜这样的历史伟人,声名更加鹊起。

舒城在西周时为舒国,到春秋后期,舒国分列为舒、舒庸、舒鸠等近10个诸侯小国,历史上称“群舒侯国”。汉时为庐江郡舒县,庐江郡的郡治也在舒城。唐开元二十三年(739年)正式设立舒城县,至今县名未改,疆域基本稳定。

舒城地处江淮之间,大别山东麓,巢湖西滨,面积2100平方公里。西南为山地,山高林密,飞瀑流泉,有国家森林公园万佛山;中部为丘陵,盛产桑麻瓜果,有国家AAAA级旅游景区万佛湖,有西汤池温泉,有周瑜古城;东北为巢湖冲积平原,平畴沃野,水网纵横,“杭埠河畔好风光,十里荷花百里秧”,是久负盛名的鱼米之乡。悠久的历史,厚重的文化,秀美的山川,肥沃的田园,不仅哺育了西汉官办学校创始人文翁,三国周瑜,宋代大画家李公麟等伟大历史人物,也造就众多的自然人文旅游风景,因此,被誉为“安徽的北戴河,合肥的后花园”。

舒城最高点万佛山主峰海拔1539米。万佛山为大别山腹地,是南北植物分布的结合部。生长在这里的维管束植物就有147科、654属、1336种,其中香果树、银缕梅等珍稀植物有25种。这里栖息的野生动物有数百种,象金钱豹、穿山甲、娃娃鱼等国家保护动物就有数十种。

万佛山四季都是美景,我们来时正值春雨蒙蒙,漫山遍野是深红、浅白、淡紫的各色山花点缀于绿树丛林,如水墨画家的泼彩点染。花的芬芳、鸟的歌声给视觉、听觉、嗅觉极大的审美愉悦。峰之秀削,石之肖物,松树之奇特,瀑布之壮观,让人叹为观止。当登上主峰极顶,俯看大地,仰望蓝天,倍感宇宙之辽阔,山河之壮美!自豪与快慰油然而生。觉得自己不仅为大山增加了高度,也是人生的一次自我超越。

“仁者爱山,智者乐水”。国家AAAA级旅游风景区万佛湖,是集“仁”集“智”的自然山水,是理想的寻梦之地。她的美让人如梦如幻如痴如醉。

万佛湖又名龙河口水库。是上个世纪60年代,舒城人用肩挑手推,土法上马修建的大型水利工程。水面积50平方公里,库容9.2亿立方,湖岸线206公里。站在雄伟的拦洪大坝上,面对烟水大湖,遥望对岸峰峦叠嶂的群山,俯看万顷碧波中60多个绿岛、花坞,眼眸追逐着翩翩自由飞翔的沙鸥、白鹭……耳际萦回飘渺的晨钟暮鼓,以及水灵灵的秧歌水调,自然的松风、水声、虫鸣、鸟唱……以及驾一叶轻舟,陶醉于湖光山色……这一切,让你的心灵如这湖水一样清澈透明,身心像水中游弋的鱼儿,天空飞翔的鸟儿一样自有安详。

第三天下午,我们在舒城县文物管理所同志陪同下来到来到周瑜出生地周瑜城。史料记载,舒城周氏为江淮豪族。东汉中后期,周瑜的先人周荣、周兴、周景、周忠等皆为朝廷显宦,有的位列三公,周瑜的父亲周异曾为洛阳令,相当于今天北京市市长这样的高官。东汉后期,孙坚兴兵讨伐董卓时,一度移家舒城。周瑜与孙坚长子孙策同年所生,随结为异姓兄弟,周瑜将自家南大宅让给孙策一家居住。建安三年(198)孙策亲自接周瑜渡江,授其建威中郎将,时年周瑜二十四岁。孙策称赞他“英俊奇才”,吴人皆称周郎。

在与岁月的抗衡中,周瑜城显得有点苍黄,但突兀的土城仍然不屈不挠地固守着周氏家族的精神底色。周瑜城遗址坐落在一个岗丘上,南临杭埠河(古龙舒水),它的西面是著名的汉代水利工程七门堰。周瑜城面积约140亩,四个对称的城门豁口依然存在。城中有一高台地,为当年城中的主体建筑台基。县文管所同志介绍,城内曾出土过汉代筒瓦、板瓦等文物。环城四周是阡陌纵横的田园,平畴之上疏落点缀着绿树围合的村庄,一座掩映于桃花竹林中的村庄,据说就是小乔的出生地乔楼村。

我们伫立于周瑜城上遥思遐想——正当向晚,落入衔山,万佛湖的波涛山影飘渺在神秘的霞光烟云里,晚风拂过金黄的油菜碧绿的麦田,远山近树在雾霭炊烟中凝聚、流动、变幻着。九宫格似的田野上曾经有三座呈犄角之势的高丘,据说那是当年周瑜布阵练兵的练三墩。朦胧里,眼前便浮现周瑜设帐高丘,指挥三军演教的潇洒英姿,耳际依稀咚咚战鼓,啸啸马鸣的壮观场面……一辆卡车鸣着长笛,划破了千年沉寂,从古老的周瑜城边弛过。

明代以前,周瑜的形象是一位英俊奇才,胸怀大度,风流倜傥的英雄人物,特别是苏轼的《念奴娇·赤壁怀古》把周瑜描绘的完美至极。自从罗贯中的《三国演义》问世后,周瑜便被被歪曲成心胸狭隘,嫉才妒能的猥琐小人了。当今,主流媒体根据历史的真实,又恢复了周瑜的英雄本色,特别是新《三国》的播出,周瑜的风流潇洒英姿又鲜活在世人的心目中。

周瑜的确给舒城添了光彩,但自从《三国演义》流传于世,很多没有读过正史的人,往往认为周瑜就是嫉才妒能的小人,由此觉得舒城人也多少带点周郎的气息,怕与共事。可谓“一从《演义》书成后,说到周郎唯妒能”,这是周郎给舒城人带来的麻烦。《三国演义》是小说,不是信史,周郎也不是嫉才妒能的周郎,周郎仍然是舒城人心目中的美周郎。

《江表传》记载这样一个故事,东吴老将程普开始认为周瑜年轻,便居功自傲,多次在公众场合给周瑜难堪,但周瑜“折节容下,终不与校(较),普后自敬服而亲重之。”并对人说:“与公瑾交,若饮醇醪,不觉自醉。”故当时人们对周瑜就有“雅量高致、谦让服人”的评价。由此推想,当年三国交兵的赤壁之战本来在湖北的蒲圻(今天的赤壁市)县境,后因苏轼谪居黄州写下千古名篇《赤壁赋》,后人便以假认真,假赤壁装饰得金碧辉煌,游人如织,真赤壁却冷冷清清……我凝视缓缓东流的杭埠河水,聆听河水轻拍着城下的岩壁——这里不也曾被附会为“小赤壁”吗?并说破曹操的水军就是从这里开赴巢湖,再由巢湖开赴长江的。历史上也有几位文人墨客写下了不少诗赋,我想,他们中如果有一二位苏东坡那样的名人,这周瑜古城、这“小赤壁”也同样被装饰得金碧辉煌,游人如织呢!——据介绍,舒城县正在积极开发“周瑜城遗址公园”旅游项目,如果周瑜城遗址能达到科学合理的开发,这一历史人文景点融合舒城美丽的自然风光,定能成为安徽的一个旅游亮点。

明代胡守恒《登周瑜城》写道:“登城见古寺,慷慨吊周公。两汉余王业,三分定霸功。云平战士垒,花压美人宫。往问孙吴事,江南梦已空。”徘徊于古城废墟,追忆“小乔初嫁了,雄姿英发,谈笑间樯橹灰飞烟灭”,一个是明眸皓齿的美人,一个是金戈铁马的英雄,“曲有误,周郎顾”,可堪绝代风流啊!然而,“浪淘尽千古风流人物”,只留下“不见人提三尺剑,空闻屯聚八千兵”的古城废墟,只有这城下的流水,流去多少岁月,流去多少兴亡,还是那样年轻,那样欢快!

当我们依依不舍地离开周瑜城,一轮圆月已走进21世纪墨蓝的夜空。