了解一下SQL Server

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 说实话,我在大学的时候用了下SQL Server,自从工作以来一直没有接触过SQL Sever,越是不接触越是排斥,也是不了解越是排斥,所以花点时间了解下自己不熟悉的技术,可能也会有一番收获。

说实话,我在大学的时候用了下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魔力象限,竟然飙到了第一名。

img_a711e67ad0a349127401d8bb03b0c0aa.jpe

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

DB engines的排名

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

img_19556f78501baef7f99e662ff789fafa.png

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

img_e81451f4cfbaad3fdde6a19cbe003da6.jpe

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

MVP

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

img_6576354bb912fe12501fedc9bd3a2978.jpe

安装类型

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

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

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

体系结构

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

img_bdffb0b55f8bfac0f169930a56b9c03f.jpe

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

  • 协议层(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等。
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
5天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
40 10
|
1月前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
95 0
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之视图
【数据库SQL server】关系数据库标准语言SQL之视图
72 0
|
2月前
|
SQL 人工智能 算法
【数据库SQL server】传统运算符与专门运算符
【数据库SQL server】传统运算符与专门运算符
68 0
|
15天前
|
SQL
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
15 0
|
5天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
55 6
|
5天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
9天前
|
SQL 安全 Java
SQL server 2017安装教程
SQL server 2017安装教程
13 1
|
22天前
|
SQL 存储 Python
Microsoft SQL Server 编写汉字转拼音函数
Microsoft SQL Server 编写汉字转拼音函数