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世纪墨蓝的夜空。