了解一下SQL Server

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
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 IDE Java
Java连接SQL Server数据库的详细操作流程
Java连接SQL Server数据库的详细操作流程
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
4月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
92 13
|
4月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
4月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
58 6
|
4月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
282 1
|
3月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
421 0
|
4月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
260 3
|
4月前
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
|
4月前
|
SQL 存储 关系型数据库
关系型数据库SQL Server学习
【7月更文挑战第4天】
71 2