我知道很多人对SQL Server 2008已经迫不及待了,为什么他们会有这么大的兴趣,其它的还不了解得客户是不是也将会有这方面的兴趣,咱们要来讲一讲,接下来的八件事,是大家一定要知道的。





一、数据压缩




数据库是会变大的,用了两年,五年十年后数据库就会大到用冰箱都塞不进去(我说的是装大象的那个冰箱)。成长是有烦恼的:
1. 存储起来麻烦,每天都在长,那这得多大的存储介质啊,现在经济又不景气,再买个阵列那不是说着玩的,总不能一边用着一边删着吧
2. 访问速度慢,用户会抱怨。这个很容易想通吧,如果数据库五年前有100G,你从100G里面翻个十块钱出来要5分钟的话,现在当要你从1000G中翻十块钱恐怕就至少得一个小时了,这还不考虑磁盘吞吐的问题。
3. 备份还原的工作量简直是噩梦了,提都不想提。

那怎么办呢?

第一种办法是把存的数据去干掉一些,这个恐怕很多人不太愿意。

另一种办法呢,就是买SQL Server 2008咯,而且要企业版的。

SQL Server 2008怎么解决这个问题的呢?用数据压缩的办法。可不是简单粗暴的RAR一下,是很有技巧di!

1. 对数据和索引都做了个更智能的存储方式
你看下面,同样是存储1这么一个数字,在SQL 2005里花了四格,而在2008里面,SQL Server自己一看,这不是浪费社会资源嘛,就只给一格,省了3/4的空间出来








2. 列前缀
这个名字比较拗口,不过做的事情比较有意思。你看下面左边这个表,列里面Mr. Smith有两个屋子,还有一Smithson,都差不多就别占这么多茅坑啦,所以SQL 2008就把Smith或者Smithson都拿出来单独放一个坑里,然后你要是去找Smith时SQL Server就会告诉你Smith在最上面的茅坑里,而Smith和Smithson原来的那么多房子呢就可以拿出来出租啦,就像右边这个图一样。









3. 表字典

经过了上面的一番折腾,Mr.Smith很不爽,凭啥我占了两个坑你把我请出来,那下面Denis,Peter不也占了俩坑,他们只是没有在一列中那么扎眼而已,你为啥不去弄他们哪?好吧,SQL Server 2008觉得这也是,那就再把Denis和Peter多吃多占的问题也揭发出来吧,就做了个表字典。表字典呢跟列前缀很类似,同样也是把Peter和Denis给抓出来,只不过是从不同的列和行中拿出来而已,给派个号,比如0,1,2,3…当有人要找住在B3栋的Denis时就直接叫:那个谁,1号,有人来看你了。这样Denis原来霸占的×××业就可以空闲出来。




这样一做到底能省多少空间呢?不一定,有可能达到90%哦,而且访问速度还会变快,原来的应用程序也不用改动。如果你想预估一下到底多少空间能节省下来的话,SQL Server 2008还提供了预测的工具。


相信你们都明白了吧,记住,是企业版中才有这样优秀的数据压缩管理的。


今天的有奖提问是:当有用户在抱怨说自己的数据库有超过3TB,运行速度很慢的时候,你可以向他提供什么建议:

A. 删掉2TB

B. 利用SQL Server 2008数据压缩功能

转载于:https://blog.51cto.com/yangzhiguo/231506