了解一下SQL Server

说实话,我在大学的时候用了下SQL Server,自从工作以来一直没有接触过SQL Sever,越是不接触越是排斥,也是不了解越是排斥,所以花点时间了解下自己不熟悉的技术,可能也会有一番收获。

SQLServer的版本

它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,1988年推出了第一个OS/2版本。1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,目前最新版本SQL SERVER 2016。

Oracle的版本也开始按照这种套路了,9i,10g,11g,12c,下来就是18,因为自2018年起,Oracle数据库的版本号将直接跳升到18

甘特魔力象限

如果说Oracle是最强大的商业数据库,估计反对的声音会很少,这些年来Oracle一直在这种强大的光环下,但是从近些年的发展来看,SQL Server的变化也很大,直到去年一看Garnter魔力象限,竟然飙到了第一名。

65656f794ae44a77823d4e8088e9bff9.jpeg

这个象限是通过多个维度来做的一个结论,所以是综合的优势。

DB engines的排名

我从DB Engines拿到了最新的数据库流行度的排行版,前三甲依旧是Oracle,MySQL,SQL Server,从我的片面认识来看,SQL Server似乎没有他地位该有的热度。

58c6b8a96fd94c4fa2323c931aa477de.png

而进一步了解一下数据库产品竞争图和客户流向示意图,就会发现,很多数据库都在收缩。在我的印象中,SQL Server在韩国,台湾用的相对比较多。

96104564dd364ee58bca9f7ec48efc85.jpeg

中间粗粗的一条线就是Oracle到MySQL。下面这个图有一点需要补充,那么就是Oracle到SQL Server,微软已经推出了Linux平台的数据库版本服务,这对于Azure的发展可谓是如虎添翼,而且微软算是投入了大量的人力财力来稀释Oracle的市场占有率。他们推出了SQL Server迁移到Oracle免费的策略,除了免费的SQL Server许可外,微软还提供了免费的SQL Server技术培训以及用于抵消迁移部署成本的补偿金。当然这个政策有一定的时效性。

MVP

微软在社区方面也花了很大的精力,他们的社区专家是被称为MVP,是通过评选获得的,整个的参选标准和Oracle的ACE有点像,得到荣誉之后也会发送奖杯之类的。

752442b548114523ae71b21bfb9b45fe.jpeg

安装类型

SQL Server的安装类型比较多,有企业版,标准版,个人版,开发版,企业评估版等。估计还有些没有整理细致,从版本的报价来看,比Oracle略低,版本间有一定的梯度价格。

Oracle的版本相对要少一些,企业版,标准版,还有个中间版本,版本的不同就是组件的差别了。比如ADG,RAC,Partition这些都是企业版的。

MySQL在这方面的差别更明显,商业版,社区版,分支(MariaDB,Percona,Drizzle...),除了商业版有个基本的费用外,其他都免费,还开源,当然这么比就不公平了,毕竟是商业数据库和开源数据库。

体系结构

学习一个数据库,看看它的体系结构设计尤其重要。这是我找到的一个体系结构图。

d941524956b64b89b4b45d7f49e4fc94.jpeg

整体来看,数据库引擎是分为了下面四个部分。

  • 协议层(Protocols)

    这个层面SQL Server做得很全面,支持TCP/IP,name pipes等,Oracle的网络服务是独立的,本机是bequeath协议,网络TCP.网络扩展支持很强,支持多端口,多种配置模式。

    MySQL在这方面的要简单一些,独一端口,统一的协议。

  • 关系引擎(Relational Engine),也称为查询处理器(Query Processor)

    这个被称为是SQL Server最复杂的一个组件。和我们通常所说的SQL引擎差不多。

  • 存储引擎(Storage Engine)

    存储引擎包含的组件大体有事务服务,锁管理器,访问方法和实用工具等。

    MySQL里面的存储引擎那可是百花齐放,尤以InnoDB为上品。

  • SQLOS是应用层,是最底层的,里面有很多的调度和管理,比如内存管理,死锁检测,调度等。

隔离级别

SQL Server有下面的5种事务隔离级别,比平常我们所说的多了一种:快照。

  • Read Uncommitted:仅支持悲观并发;

  • Repeatable Read:仅支持悲观并发;

  • Serializable:仅支持悲观并发;

  • Snapshot: 支持乐观并发;

  • Read Committed:默认隔离级别,依据配置既可支持悲观并发也可支持乐观并发

备份恢复

这方面的工作,如果手工去做,通过图形界面就能够完成,这一点上很多数据库都达不到SQL Server这种易用性和用户体验。当然大批量的环境应该得用脚本实现。

看了下SQL Server create database的语句,和Oracle很想,有些数据字典也会很类似。比如里面也有information_schema,还有sys等。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23718752/viewspace-2144667/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23718752/viewspace-2144667/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值