MSSQL编程:SQL Server 2005关于数据范例最年夜值
用一个库#bak_database存放这些历史数据。 本文是SQLServer2005关于数据范例最年夜值成绩的办理举措的实例。事变入手下手得很复杂。MegaWare公司市场部门想要一个新的网站来公布文档,开辟团队以为利用SQLServer2000数据库作为文档存储堆栈会使事变变得复杂。Steve是MegaWare的数据库办理员,没有看出这有甚么年夜成绩;在数据库中存储文档,而不是利用文件体系,意味着服务器必要多做一些事情,可是它也会使得备份和办理简单很多。数据库与文件体系变得分歧步也应当是不成能的。
市场部门想要存储的很多文档都凌驾了8000个字节,那末很分明VARCHAR不是合适这项事情的数据范例。作为替换,TEXT数据范例被用来界说寄存数据的字段。由于每一个TEXT都能包容2GB的内容,TEXT要寄存市场部门的同事们扔进数据库的最年夜的文件也是没有成绩的。
数月已往了,市场用大批的无聊拷贝填满了全部数据库。可是这还不是Steve真正体贴的成绩。数据库兴奋地嗡嗡作响地运转着,每一个人对项目标了局都很中意。
直到公司的口号改动的谁人严重的日子。市场部的团队以为“MegaWare:Itsreallycool!”要比本来的“ItsMegaWaresWayortheHighway!”听起来更好。由于市场部团队已将本来的口号嵌进了堆栈中每一个文档的页脚上,如今Steve的事情就是变动一切这些文档的页脚。
“没有成绩,”Steve想,翻开SQLServer查询剖析器工具,实行了以下的T-SQL批处置:
UPDATEMarketingDocuments
SETDocument=
REPLACE(Document,
ItsMegaWaresWayortheHighway!,
MegaWare:Itsreallycool!)当他看到呈现的毛病动静的时分,Steve的轻松的浅笑很快消散了,“交换函数的参数1,text数据范例有效。” 交换函数在编写出来的时分,就对TEXT数据范例不起感化。一样也对CHARINDEX大概SUBSTRING不起感化——大概最少是他们在凌驾8千个字符的情形下不起感化。更进一步地讲,开辟职员忘了处置TEXT大概IMAGE范例的当地变量;实践上不撑持任何操纵。即便是复杂地更新一个文档中的一个子字符串都必要用到流畅的器材,和难以利用的相似READTEXT和WRITETEXT的函数。而不是开辟职员大概劳碌的数据库办理员由于想要弄清怎样准确利用而接纳了分歧范例的函数损耗了工夫。
用一个库#bak_database存放这些历史数据。 原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜! 代替了原来VB式的错误判断。比Oracle高级不少。 从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。 分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。 这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。 大侠们有推荐的书籍和学习方法写下吧。 相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐 相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐
页:
[1]