原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com

SQL Server是我使用时间最长的数据库,算起来已经有10年了。上世纪90年代,微软在软件开发的所有领域高歌猛进,形成了操作系统、办公软件、企业开发、游戏制作、浏览器各领域的全线垄断。那曾经是微软发展的黄金时期,至到今天,它仍然在享受着当年的红利。

在SQL Server 2000那个年代,由其功能强大,使用方便,“国人免费”等特点迅速流行起来,成为企业开发的不二选择。早期的用友、管家婆的ERP也使用此作为数据库。那个时候WEB开发还不像现在这样流行,主要就是做一些网站,而企业桌面管理软件则是大家争抢的市场。SQL Server和Visual Studio开发的软件跑在Windows平台下,则成为标配,大量程序员夜以继日的研究其中的奇巧淫技,乐此不彼。SQL Server和Sybase之间还有些渊源,有兴趣的同学自查。

在摩尔定律的推动下,硬件飞速发展,软件复杂度增加,SQL Server 2000的潜能已经被榨干,市场迫切需要性能更高,功能更完善的数据库。数据库是微软的现金牛,当然是当然不让。经过5年的开发,推出了经典的SQL Server 2005。5年时间才发布一次版本,和VS2008, 2010,2012,2013比起来,弱爆了啊。SQL Server 2005完全颠覆了“数据库就是保存数据的地方”概念,带有一系列的辅助组件,身材翻了几倍,在我的老DELL笔记本安装了一个多小时……

SQL Server 2005新增了一系列的函数,推出了CLR存储过程,提升XML为数据类型,Service Broker消息组件,BI报表服务等。报表服务(Report Service)目的是想取代水晶报表,挖掘数据,后来的发展事实证明这玩艺儿就是玩具,很快被开发者摒弃。Service Broker消息组件被一些公司作为数据同步机制使用,也就是读写分离。XML增强后可以直接在SQL中XPATH运算,通过相关函数,还可以和Table做Join,为一些特定场景提供了灵活性,但物极必反,过度使用会造成效率问题。

SQL Server 2005中第一次引入了表变量,可以很多场合替代临时表,像变量一样自动回收的特性立即吸引了我。引入了Oracle中数据窗口的概念,可以方便完成以前需要复杂SQL的工作。影响最常见和深远的应该是对分页的影响,ROW_NUMBER分页几乎现在已经标准化,新生代程序员可能很少去关注了。而在此之前,牛逼的DBA都喜欢做分页存储过程来显示自己的能力,而开发者也喜欢比较各自使用的分页存储过程效率,各种测试甚至口水仗,那是一个多么纯真的年代啊。

SQL Server 2005借用Visual Studio的经验,提供了相当华丽的的SQL Server Management Studio。集成了SQL Server 2000时代的企业管理器和查询分析器,重新设计整体布局,用户体验瞬间提高了不少。遗憾的是,仍然没有提供智能提示的支持,还得继续使用第三方工具辅助。

SQL Server 2005给开发者的惊喜是空前绝后的,现在恐怕再也看不到如此革命性的突破了。其打下的根基和建立的概念在后续版本中得到了增强和完善。当前业界在不断弱化关系型数据库,NOSQL、BigData流行了起来,SQL的激情岁月一去不复返了,留给我们却是一代程序员的回忆。

回首经典的SQL Server 2005的更多相关文章

  1. SQL Server 2005 盛宴系列 经典教程

    SQL Server 2005 盛宴系列 经典教程  [复制链接]   发表于 2007-3-27 14:08 | 来自 51CTO网页 [只看他] 楼主     TECHNET  SQL serve ...

  2. (原创)关于SQL Server 2005 的自动远程数据库备份

    由于项目需要,需要对目标服务器上的数据库每天进行备份并转移,查阅网上的一些帮助,结合自己的实际需要,写了这篇文章,希望对有同样需求的朋友有所帮助.目标服务器:192.168.1.197,备份服务器:1 ...

  3. 关于SQL Server 2005 的自动远程数据库备份

    原文:(原创)关于SQL Server 2005 的自动远程数据库备份 由于项目需要,需要对目标服务器上的数据库每天进行备份并转移,查阅网上的一些帮助,结合自己的实际需要,写了这篇文章,希望对有同样需 ...

  4. 监控 SQL Server (2005/2008) 的运行状况

    Microsoft SQL Server 2005 提供了一些工具来监控数据库.方法之一是动态管理视图.动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的 ...

  5. windows10下sql server 2005 无法运行或sql server服务无法启动的完美解决方案

    问题:升级windows10后,sql server 2005 无法运行或sql server服务&sql server agent无法启动,如下图,怎么办? 一般情况下,我们第一反应就是sq ...

  6. SQL SERVER 2005修改数据库名称,包括物理文件名和逻辑名称

    SQL SERVER 2005修改数据库名称,包括物理文件名和逻辑名称   原来数据库名称为 aa,物理文件名称为 aa.mdf 和 aa_log.ldf:   需要修改数据库名称为 bb,物理文件名 ...

  7. Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)

    Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码) http://blog.csdn.net/helonsy/article/details/7207497 ...

  8. win7中 SQL server 2005无法连接到服务器,错误码:18456

    win7中 SQL server 2005无法连接到服务器,错误码:18456.. 数据库刚装完.我用Windows登陆  结果登陆不上去.. 选中SQL Server Management Stud ...

  9. SQL SERVER 2005删除维护作业报错:The DELETE statement conflicted with the REFERENCE constraint "FK_subplan_job_id"

    案例环境: 数据库版本: Microsoft SQL Server 2005 (Microsoft SQL Server 2005 - 9.00.5000.00 (X64) ) 案例介绍: 对一个数据 ...

随机推荐

  1. accept_mutex与性能的关系 (nginx)

    注:运行环境CentOS 6+   背景      在对启动了20个worker的nginx进行压力测试的时候发现:如果把配置文件中event配置块中的accept_mutex开关打开(1.11.3版 ...

  2. CSS十问——好奇心+刨根问底=CSSer

    最近有时间,想把酝酿的几篇博客都写出来,今天前端小学生带着10个问题,跟大家分享一下学习CSS的一些体会,我觉得想学好CSS,必须保持一颗好奇心和刨根问底的劲头,而不是复制粘贴,得过且过.本人能力有限 ...

  3. 从零开始编写自己的C#框架(24)——测试

    导航 1.前言 2.不堪回首的开发往事 3.测试推动开发的成长——将Bug消灭在自测中 4.关于软件测试 5.制定测试计划 6.编写测试用例 7.执行测试用例 8.发现并提交Bug 9.开发人员修复B ...

  4. obj.style.z-index的正确写法

    obj.style.z-index的正确写法 今天发现obj.style.z-index在js里面报错,后来才知道在js里应该把含"-"的字符写成驼峰式,例如obj.style.z ...

  5. C语言动态走迷宫

    曾经用C语言做过的动态走迷宫程序,先分享代码如下: 代码如下: //头文件 #include<stdio.h> #include<windows.h>//Sleep(500)函 ...

  6. Response.Redirect引起的性能问题分析

    现象: 最近做的一个系统通过单点登录(SSO) 技术验证用户登录.用户在SSO 系统上通过验证后,跳转到该系统的不同模块.而跳转的时间一直维持子啊几分钟左右. 分析步骤: 在问题复现时抓取Hang d ...

  7. css样式之border-image

    border-image-source 属性设置边框的图片的路径[none | <image>] div { border: 20px solid #000; border-image-s ...

  8. 敏捷转型历程 - Sprint4 回顾会

    我: Tech Leader 团队:团队成员分布在两个城市,我所在的城市包括我有4个成员,另外一个城市包括SM有7个成员.另外由于我们的BA离职了,我暂代IT 的PO 职位.PM和我在一个城市,但他不 ...

  9. Matrix4x4矩阵变换、欧拉角转四元数、角度转弧度

    Matrix4x4 // 重置矩阵 ][]) { m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] ...

  10. 我的MYSQL学习心得(三) 查看字段长度

    我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...