免费获客网站、免费获客平台、免费产品获客【风起获客】风起获客
  • 首页
  • 供应商
  • 采购商
  • 找企业
  • 找产品
  • 论坛
登录 / 注册

怎么样解决SQLserver与数据库连接不上问题。SQL Server 2017正式发布,微软老牌数据库如何继往开来?

13195677798
2025-03-17
12
分享

专业编程培训机构——完成蜕变以后轻松拿高薪

电话+V:1599997-8052 ,欢迎咨询sql sever数据库引擎,[python实用课程],[C++单片机原理],[C#网站搭建],[Nodejs小程序开发],[ios游戏开发],[安卓游戏开发],[教会用大脑用想法赚钱实现阶层跨越]

一、怎么样解决SQLserver与数据库连接不上问题。

解决SQLServer与数据库连接不上问题,首先需要检查网络连接、SQLServer服务状态、登录凭证以及数据库引擎配置。


在尝试连接SQLServer数据库时,如果遇到连接不上的情况,首先要确认的是基本的网络连接是否正常。这包括检查网络线路、路由器、交换机等硬件设备是否运行正常,以及网络配置是否正确。如果网络连接存在问题,那么数据库连接自然会受到影响。


其次,要检查SQLServer服务是否已启动。在Windows操作系统中,可以通过服务管理器来查看SQLServer相关服务的状态。如果服务没有运行,需要手动启动它,或者设置为自动启动,以确保在服务器重启后服务能够自动恢复运行。此外,还要确保SQLServer服务的账户和密码设置正确,以便服务能够正常启动和运行。


接下来,要检查登录凭证是否正确。在连接SQLServer时,需要提供有效的用户名和密码。如果用户名或密码错误,或者用户的权限不足,都会导致连接失败。因此,需要确认所使用的登录凭证是否具有访问数据库的权限,并且密码没有过期或被锁定。


最后,还需要检查数据库引擎的配置。SQLServer允许通过不同的协议和端口进行连接,如TCP/IP、NamedPipes等。需要确认数据库引擎已配置为允许通过当前尝试使用的协议和端口进行连接。同时,防火墙设置也可能阻止外部连接,因此需要检查服务器的防火墙规则,确保允许从客户端到SQLServer的通信。


综上所述,解决SQLServer与数据库连接不上的问题需要从网络连接、服务状态、登录凭证以及数据库引擎配置等多个方面进行检查和调整。

二、SQLServer服务器组件都有哪些

服务器组件说明

SQLServer数据库引擎

SQLServer数据库引擎包括数据库引擎(用于存储、处理和保护数据的核心服务)、复制、全文搜索以及用于管理关系数据和XML数据的工具。

AnalysisServices

AnalysisServices包括用于创建和管理联机分析处理(OLAP)以及数据挖掘应用程序的工具。

ReportingServices

ReportingServices包括用于创建、管理和部署表格报表、矩阵报表、图形报表以及自由格式报表的服务器和客户端组件。ReportingServices还是一个可用于开发报表应用程序的可扩展平台。

IntegrationServices

IntegrationServices是一组图形工具和可编程对象,用于移动、复制和转换数据。

连接组件

SQLServer2017正式发布,微软老牌数据库如何继往开来?

原创2017-10-03 09:56·InfoQ

策划|Gary

作者|何恺铎

美国时间2017年10月2日,微软最新一代数据库SQLServer2017正式发布。SQLServer2017带来了一系列全新的功能与设计,体现了微软在数据平台建设方面的最新思考和实践。InfoQ特邀国双科技高级技术总监何恺铎撰文对SQLServer2017进行深入探讨和解析,以飨各位读者。

写在前面

数十年来,关系型数据库一直是结构化数据存储的不二之选。从高校到工业界,关系型数据库向来是数据研究和应用的核心,也促生了大批从事数据库开发、维护和调优的人才。近年来随着各种NoSQL数据库和Hadoop技术生态的诞生和流行,RDBMS似乎受到了巨大的挑战,有着“严谨呆板”形象的关系型数据库一度被市场唱衰。然而事实证明,即便面对着众多后起之秀的竞争,有着悠久历史的关系型数据库不但没有消亡,反而历久弥坚,不断推陈出新,在现代后端数据架构中仍然占据核心地位,散发出十足活力。

微软SQLServer数据库,是商业关系型数据库阵营中的杰出代表,在DB-Engines数据库流行度排行榜上常年位居前三。得益于便捷的图形化管理界面和易于上手的特点,许多人的关系型数据库之旅,就是从SQLServer开始的。如今正值SQLServer2017发布之际,我们不妨一起来看看SQLServer的前世今生,探究微软数据平台发展之路。

微软SQLServer自身的历史具有传奇色彩,最初是由微软、Sybase、Ashton-Tate(开发dBase的公司)三家合作,将SybaseSQLServer数据库移植到OS/2操作系统而诞生的。后来随着OS/2的挫败和WindowsNT操作系统的走强,微软停止了与Sybase的合作,开始聚焦于为Windows平台独立地开发和维护这个数据库产品,此即MicrosoftSQLServer的由来。为了避免混淆,Sybase也将自己的数据库从SybaseSQLServer重命名为了AdaptiveServerEnterprise(ASE),从此SQLServer仅指微软旗下关系型数据库了。说起来Sybase的数据库产品也一度在金融等行业享有盛誉、颇受欢迎,但如今早已风光不再,于2010年被SAP收购,令人唏嘘。

与Sybase分道扬镳之后的MicrosoftSQLServer,倒是稳扎稳打,一路前行。SQLServer7.0和SQLServer2000这两个版本基本完成了在原有Sybase代码基础上的大量重写和扩展,正式进入企业级数据库的行列;而SQLServer2005则真正走向了成熟,与Oracle、IBMDB2形成了商业数据库的三足鼎立之势。之后SQLServer历经2008、2008R2、2012、2014、2016各版本的持续投入和不断进化,直至2017年10月2日正式发布了最新版本SQLServer2017,也即本文的主角。

近年回顾

在着手分析SQLServer2017新特性之前,我们不妨先来看看SQLServer近些年的着力点,一窥其发展思路。

着力点之一,在于OLAP。传统关系型数据库一般以行为基本的处理和存储单位,以便于数据记录的增删改查。但面对日益增长的数据分析和聚合类查询,基于行的存储和处理就显得有些笨拙和低效了。为此,在以Denali为代号的SQLServer2012中,微软引入了一个全新的xVelocity列式存储与分析引擎,使得SQLServer拥有了一个高质量的列式存储实现,以及一个为矢量化和批处理高度优化的查询执行引擎。从此面向OLAP负载的数据表可以选择建立基于列存储的非聚集索引(NonClusteredColumnStoreIndex),大幅提升了分析类查询性能。在后续的SQLServer版本中,列存储相关特性不断得到进一步的增强和完善,不但引入了列存储聚集索引(ClusteredColumnStoreIndex)使数据表能够完全仅以列式存储,还通过Delta-Store机制实现了列存储表的数据更新支持,进一步拓宽了应用场景,增强了易用性。

笔者还清晰记得多年前在自己的ThinkpadT410上首次尝试SQLServer2012的列存储索引时带来的震撼,针对近亿行数据的分析查询在普通笔记本上也做到了数秒内的返回结果,令人印象深刻。历经多年的打磨之后,可以说微软的列存储实现已经成为世界范围内最高效最可靠的列存储设计之一。相关技术微软甚至还作了一定程度的对外输出:通过与HortonWorks合作,微软向开源世界的ApacheHive项目贡献了不少代码(被称为Stinger项目,[注1]),帮助Hive提速,其思想精髓也正来自于SQLServer的xVelocity列式存储和分析引擎。

着力点之二,在于OLTP。传统关系型数据库其实本就擅长OLTP,那么可改进的点在哪里呢?计算机发展的历史进程所带来的一个问题是,经典的数据库存储机制大都针对磁盘结构进行设计和优化,原本昂贵的内存资源更多充当的是缓存的角色。而随着硬件技术不断发展,服务器内存不断增大后,许多场景下数据的存储和索引其实都可以完全纳入内存中了——这就为基于内存的数据库引擎提供了条件。当一个数据库引擎及其存储完全为内存优化和设计后,其性能的增幅将是非常惊人的。微软数年前在这一领域进行了大举投入,代号为Hekaton的内存数据库技术最早在2012年底对外进行了公布[注2],后随SQLServer2014正式发布。配合其无锁的并发模型及用SQL撰写的本机编译存储过程(NativelyCompiledStoredProcedure),相比传统方案,Hekaton往往能够达到多达数十倍的性能提升,完全地改变了许多系统的设计思路,实现了之前难以企及的高负荷场景支撑。

可以看到,截止到SQLServer2016版本,这款微软的拳头产品已经非常强大和完整,能够在单个产品内提供OLAP和OLTP负载的完美融合。那么仅过了短短一年时间,最新的SQLServer2017还能带来哪些新的惊喜?我们来一看究竟。

新特性之跨平台与容器化

SQLServer2017第一个不得不提的变化,不是一个具体功能,而是其运行环境的变革:支持Linux服务器。这是微软SQLServer系列产品首次正式地得以在Linux上运行,并且提供完整的官方支持。这无疑大大拓宽了SQLServer的应用场景和客户群体。要知道,虽然WindowsServer的授权并不算昂贵,但对于许多以Linux生态为主要技术栈的公司而言,并不会考虑申购和运维基于Windows的后端服务器——因此在技术选型时,SQLServer可能第一时间就被排除在外了。当SQLServer2017正式支持Linux后,这一障碍将不复存在,SQLServer终于可以在新的战场和竞争对手开展竞争,这无疑会非常有助于其市场份额的提升。

当然,看上去深度耦合于Windows的SQLServer想要完美地运行于Linux上,实现起来绝非一件容易的事情。这是怎样做到的呢?这里有两个关键因素:

其一是SQLServer原本就有称为SQLOS的底层基础设施,该组件可绕过操作系统和Win32API的限制,直接自行管理和组织CPU、内存等计算和存储资源,以及进行适合自己的线程调度,以便充分利用底层硬件性能;

其二是来自微软研究院的DrawBridge项目,该项目原用于实现应用沙盒机制,它的LibraryOS组件依靠仅约50个底层内核调用实现了一千多个常用的WindowsAPI,同时还具备为其他组件如MSXML和CLR等提供宿主的能力。

SQLServer团队基于这两个已有基础进行了伟大的尝试,将二者进行了必要的重写和充分的融合,形成了新一代的底层封装SQLPAL(SQLPlatformAbstractionLayer),同时将上层逻辑代码都移植到了SQLPAL之上——这是SQLServer得以在短时间内实现跨平台的关键所在。与此同时,SQLPAL这种特殊的抽象机制,并没有付出通常意义上抽象所带来的性能代价,因为它一定程度地绕过了操作系统的制约,自底向上地搭建了自身所需的运行环境。

SQLServeronLinux实现原理[注3]

前面回顾历史时我们提到,SQLServer在90年代努力地独立与成长,战略性地聚焦在了Windows平台。而20多年后,SQLServer如今跨出拥抱Linux的关键一步,同样是一种战略的调整。历史看似循环往复,其实都是不同时代不同环境下的最佳商业选择。

为了给SQLServeronLinux保驾护航,微软还和RedHat等老牌Linux提供商达成了合作[注4],一起为客户提供整合解决方案,以确保操作系统层面的可靠性及与SQLServer的兼容性。目前SQLServer能够被安装到RedHatEnterpriseLinux、SUSELinuxEnterpriseServer及Ubuntu之上。伴随着Linux支持一起到来的,还有对于容器的支持。SQLServer2017现能完美地通过Docker运行,微软也已在DockerHub上发布了基于SQLServeronLinux的官方SQLServer镜像[注5](微软同时还提供了面向Windows容器的版本)。SQLServer容器化的主要意义在于支持DevOps。在以往,想要让SQLServer这样一个重型数据库实例按需地、自动地启动或关闭是比较困难的,一般都需要事先安装准备好相关的数据库环境;而如今,借助容器和镜像,我们可以非常方便地通过Docker来轻量化地启停SQLServer,通过脚本与DevOps流程进行集成也变得很容易。

笔者曾经在自己的一个开源类库[注6]中做过这样的尝试,将原有的依赖于SQLServerLocalDB的一系列集成测试迁移到了新的SQLServer容器上,顺利解除了本地测试运行环境必须安装SQLServer的依赖,也为在远端CI环境中运行测试扫清了障碍。当然,除了DevOps方面的应用,也可以尝试在生产环境直接使用容器化的SQLServer,以便使数据库也统一纳入生产环境容器编排的范畴。限于篇幅,此处不再展开。

如上所述,SQLServer2017已从原来固守Windows的策略,大步地转向了支持Linux、Docker容器和Windows三大平台。这一决策无疑将对SQLServer乃至数据库市场产生深远影响。

新特性之图数据处理

向新兴的NoSQL学习也是现代关系型数据库发展的一个重要特征。如文档型数据库善于处理的JSON数据,在SQLServer2016中也成为了一等公民,得到了存储、索引、查询等方面的全面支持。而在SQLServer2017中,这位数据库老前辈与时俱进,又开始向Neo4j这样的后起之秀学习,大胆地引入了图数据的处理与支持[注7]。

众所周知,图数据库的核心实体是节点和边,通常都拥有一些属性,然后节点通过边进行相互关联。在传统关系型数据库中,对图进行建模其实并不困难,可以通过为节点和边分别建表并通过外键关联的方式来完整表达图的信息。然而,主要的问题在于查询和查询的性能:一些典型的图查询的表达在传统关系型数据库中显得笨拙而困难,尤其当需要在图的节点间进行多次跳跃(multi-hop)时,SQL的撰写比较容易出错,查询性能也不能得到保证。

SQLServer2017中的图数据库特性试图解决这两个问题,它仍然以表的形式来对图信息进行建模和存储,但加上了额外的扩展,大幅提升了易用性。在创建表时,现可通过T-SQL的扩展语法来指定此表是图数据库中的节点表(ASNODE)或边表(ASEDGE),随后SQLServer会隐式地为表加上$node_id或是$edge_id、$from_id、$to_id等字段,以帮助记录节点和节点间的关系;在查询时,SQLServer2017一定程度借鉴了Neo4j中Cypher查询语言的部分语法,通过引入MATCH关键词来帮助用户以ASCII-art的方式表达有向图中的节点巡游,同时完美地融合进现有的SQL查询体系。我们不妨来看一个官方的查询样例:

可以看到,上述T-SQL片段能够很方便地表达出“John的朋友喜爱的餐馆”这个包含两种不同连接类型的“二跳式”查询,并且用ACSII字符表达的箭头也很好地体现了边的方向性。若与相同语义的传统SQL写法相比,这样的表达方式无疑清晰、直观得多。

图数据库特性在SQLServer2017中已初露峥嵘。当然,由于此特性是首次引入,客观上来讲并没有到达完全成熟的程度。例如,不支持transitiveclosure(节点间不限跳跃次数的连通性判断)和polymorphism(查询某节点所能到达的不同类型的节点)等图数据库常用的高级查询。在性能方面,SQLServer目前主要利用的也仅是二维表的既有索引和查询优化器所作的表连接优化,尚没有引入为图优化的专用数据结构。期待后续的版本升级和更新会在这些方向上做进一步的增强。

新特性之数据库内机器学习

机器学习无疑是近年来的热词,也是现代数据应用不可或缺的组成部分。微软虽然在此领域拥有雄厚的研究实力和成果,但在构建相关开发生态上却显得动作缓慢。早年的SQLServerAnalysisService虽然也内置了数据挖掘功能,但因过于笨重及程序集成困难等问题,使用场景非常受限。直到近年,微软才开始逐渐发力:在2015年初,微软果断地将RevolutionAnalytics收入囊中[注8]。此次收购至关重要,它为微软带来了面向R语言生态的全面的开源和商业解决方案,覆盖了庞大的R语言社区和数据科学家人群。

那么作为经典的关系数据库,SQLServer如何应对和适应这个新趋势呢?受益于RevolutionAnalytics的收购,SQLServer2016版本带来了突破性的SQLServerRServices[注9]:能够让R语言及其生态直接作为一个服务在SQLServer环境内部运行。而在SQLServer2017中,更进一步加入了另一个拥有强大AI生态的语言支持:Python。原有的RServices也与新引入的Python服务一起重命名为MachineLearningServices。

MachineLearningServices的核心产品思路,是在数据库内直接运行机器学习负载,它允许大家熟悉的Python/R脚本与众多机器学习类库在数据库服务器上运行,并无缝地与SQL衔接。这样的设计理念,与传统的数据库外独立的机器学习相比有何好处呢?在笔者看来,其核心优势正在于“集成”二字,可从几个方面来理解:

一是便捷的数据集成,即无需进行复杂的数据移动和准备就可以使用SQL访问到各类业务数据,并提供给Python/R的各类AI算法作为输入;二是高效的模型集成,即训练完成后的模型可以使用SQLServer进行管理和存储,模型使用时也可轻易地通过存储过程进行调用并获取结果,SQLServer会自动帮助你完成执行引擎和Python/R运行环境间的高效数据传输和序列化;三是无痛的应用集成,即应用可以通过传统的数据库连接和存储过程返回值的方式来获得机器学习能力,无需复杂的仪式和专用的架构,一切就和传统的数据库访问一致。

当然,客观地说数据库内机器学习的设计也有其技术局限,主要体现在可伸缩性方面:由于模型训练时需要较大的计算资源消耗,因此单机服务器可能成为潜在的瓶颈。虽然SQLServer中可以使用性能超越开源R实现的
ScaleR/ScalePy/MicrosoftML等支持多线程和GPU加速的商业级类库,但可能仍不适合数据量大到需要动用大规模集群进行训练的场合。此外,也有人对数据库内集成Python/R脚本的开发、测试和运维成本表示疑虑。这些也是微软后续会考虑增强的地方,RToolsforVisualStudio在这方面已经作出了一些努力。

对比同类解决方案,SQLServerMachineLearningServices有其独特的优势。数据库内机器学习的理念让拥抱AI变得更简单而直接,也意味着更低的研发成本和更早的上线时间。它尤其适合现有基于SQLServer的企业应用进行机器学习方面的尝试和升级。让我们期待更多的实际案例的诞生,也期待它的进一步完善。

新特性之自适应查询处理

如果说数据库内机器学习给开发者应用带来了智能,那么SQLServer的查询执行引擎本身是否也能变得更聪明更智能呢?答案是肯定的,这也正是SQLServer2017的另一个发展方向,相关的一系列特性被称为自适应查询处理(AdaptiveQueryProcessing)。

SQL查询高效执行的关键在于制定合理的执行计划。一般来说,执行计划的生成发生在查询执行之前,是执行引擎基于统计信息和索引状态等元数据信息,结合执行步骤和中间结果集的量级预估而综合得出的。同时执行计划通常会进行缓存,以便相同形式的查询可以复用查询计划,以提高综合查询性能——这一切看上去很美好,不是么?然而在实际环境中,上述的精妙机制也会遇到种种挑战和棘手问题。例如,参数化的查询常常对参数输入较为“敏感”,不同的参数会导致数据结果量级波动很大,难以事先预估和选择最优的查询计划;又如统计信息未及时更新导致中间结果集规模预估失误而选择了错误的计划;再如使用hint解决短期问题,导致长期来看效果适得其反等等。

为了缓解上述的种种痛点,势必要引入执行时智能和自我调优,对此SQLServer2017的自适应查询处理作了有益的探索和落地。其核心思路在于,一定程度地延后完整的执行计划生成的时间,等待部分实际输入集合到位后再做下游执行方式的策略选择。例如,新引入的自适应join运算符可以基于上游数据输入的精准量级动态地选择联接策略是应当使用nestedloop还是hashjoin;又如多语句表值函数(MSTVF)不再使用固定的量级预估,而是可以先执行函数再制定下游执行计划的方式来确保获得更优的执行效率。这些新特性,有DBA给出了“能够避免我上周一半的查询性能调优工作”[注10]的高度评价。

除了执行时的计划延迟生成,数据库系统还可以从已经执行完成的查询中获得反馈,以便后续的同形态查询获得更合适的查询计划,这是超越简单的执行计划缓存的更高级形式。在这个方面,SQLServer2017实现了批处理模式下的内存分配反馈(memorygrantfeedback)功能,可帮助后续查询从之前查询的内存分配实践中吸取“经验教训”,实现内存资源的准确估计和分配。

可以看到,SQLServer2017已通过自适应查询处理在执行智能方面开始发力,实现了一系列场景下的自动适应和优化,同时做到了对开发者透明。目前其局限性主要在于不少上述特性仅适用于批处理模式(见于针对列存储的查询),而不适用于传统的行式处理模式。相信微软今后会在此领域加入更多对行处理模式的支持,进一步拓展自适应查询处理的适用场景。

SQLServer与大数据

在大数据时代,以Hadoop为代表的分布式数据处理计算框架层出不穷,取得了空前的生态繁荣;而以Hive、Impala、Presto等为代表的SQLonHadoop解决方案更是对传统数据库发起了强而有力的冲击。在这样的时代背景下,关系型数据库的确略显尴尬。那么,SQLServer是如何应对和拥抱“大数据”浪潮的呢?

应对之一,是强化SQLServer自身的数据存储和处理能力,拓展应用场景,即”SQLServer也能处理大数据”。得益于服务器硬件技术的不断发展,单服务器容量和处理能力不断提高,配合优秀的分区机制和列存储压缩,SQLServer事实上已经能够处理相当大体量的数据。去年微软和英特尔曾合作进行了一个有趣的实验,使用一台单机SQLServer服务器承载了多达100TB的数据,并进行了详细的测试,其综合性能表现令人惊喜[注11]。百TB的量级,其实已经能够满足不少存储和计算“大数据”的需要了。在很多场景下,与有着over-engineering之嫌的Hadoop集群方案相比,SQLServer更易于管理和维护,架构稳定简单,反倒是综合成本更低的选择。

当然,若是面对PB级别以上的数据,单服务器仍会捉襟见肘。针对这样的数据量级,微软有一个被称为SQLServerParallelDataWarehouse(简称PDW)的产品解决方案,可以理解为SQLServer的一个分布式变体,是基于SQLServer核心构建的一个MPP分析型数据库。PDW通常以与硬件厂商合作的方式进行软硬件一体化售卖,能够轻松支持PB规模的数据存储与分析。

应对之二,自然是与大数据开源解决方案的充分共通与融合,尤其是大数据的事实标准:Hadoop。这里的主角,是微软在SQLServer2012PDW中开始正式引入的PolyBase技术。现在它不再是PDW版本所独有,已成为了标准SQLServer和Hadoop间的重要桥梁。PolyBase的核心能力,是允许在SQLServer上下文环境中定义面向Hadoop的外部表,并面向外部表执行SQL——这一设计思路和Hive的外部表以及PostgreSQL的FDW扩展非常类似。基于这样的核心能力,就能够很容易地实现将大量数据从Hadoop导入SQLServer,也可以反向将SQLServer数据导出至大数据集群。若和Sqoop这样单纯的数据移动方案相比,PolyBase一方面拥有更好的性能(基于直接HDFS访问而非MapReduce),另一方面受益于外部表的抽象,能够在外部Hadoop数据不落地的情况下和本地数据库表进行联合查询。

由上可见,面对风起云涌的大数据浪潮,微软没有固步自封。在强化自身能力的同时,SQLServer也选择了和大数据生态和谐共存,互相融合。

SQLServer与云计算

如今的云计算发展如火如荼,因此拥抱和支持云也是每一个数据库产品都需要做好的功课。在这个方面,SQLServer称得上是成绩出色的优等生,是微软云计算战略的重要组成部分。

作为拥抱云的第一步,微软毫无悬念地将SQLServer以PaaS服务的形式提供了出来。这一服务其实早在2010年就已经发布,当时命名为SQLAzure,后改称AzureSQLDatabase。对传统商业数据库而言,通常采购和安装的流程较为冗长,开发者即便有兴趣,也有比较高昂的尝试成本——AzureSQLDatabase的出现彻底改变了这一点,只需在Azure门户中轻轻点击,一个托管的数据库实例就整装待发了。这一商业模式上的改变,无疑大大降低了微软数据库的使用门槛,拓展了使用场景。

从技术上来说,AzureSQLDatabase绝非通过虚拟机提供SQLServer服务那么简单,它是基于SQLServer的能力完全为云端环境设计的PaaS产品——它不但拥有丰富的SQLServer特性,与SQLServer的功能升级同步,而且具有良好的弹性伸缩特点。AzureSQLDatabase使用DataTransactionUnit(DTU)的概念来描述SQLDatabase实例的性能级别。用户可以随时地按需调整数据库实例DTU的大小,以达到不同时间段下工作负载和性能级别的匹配,有效地节省成本。此外,AzureSQLDatabase还支持弹性池(elasticpool)特性,允许一组数据库实例共享一个资源池,特别适合于多租户的SaaS类应用程序。

在微软2015年Build大会上发布的AzureSQLDataWarehouse,则是SQLServer在云端的另一位表亲。它本质上是前面提到的SQLServerPDW的云端版,是可用于大规模数据计算与分析的分布式数据仓库。SQLDataWarehouse的核心技术,除分布式调度之外,正是运行在SSD存储之上的列存储索引。相对主要竞品AWSRedShift而言,AzureSQLDataWarehouse受益于Azure存储与计算分离的理念,不但可以动态调节计算能力,甚至可以“关机”,即暂时关闭计算能力而仅保留存储——这在许多数据仓库场景中是可以节省大量成本的杀手级特性,也成为了许多客户选择Azure的原因。

当然,有时仍然需要SQLServer以VM的形式在Azure上运行,以突破一些PaaS形式云数据库的限制,如使用SQLAgent或需要在VM上安装其他配套软件等。针对这种情形Azure也提供了便捷的SQLServer虚拟机,开箱即用,数据库的许可证费用也会按照使用时间进行计算。

作为拥抱云计算的另一种形式,SQLServer也非常重视云端互操作能力,将云作为自己的扩展,以及融入云端数据平台体系。首先,从2016版本起,SQLServer就开始支持使用云作为数据库的外延,通过StretchDatabase功能可以让本地数据库中的冷数据自动无缝地上传到Azure云中,同时前端查询不需要做任何的调整。其次,SQLServer也能够通过不断增强的PolyBase技术顺畅地融入云端的大数据解决方案,如微软自家的AzureDataLake或是Hortonworks提供支持的基于HDP的HDInsight。

前景与展望

如今的SQLServer风华正茂,早已不是当年那个被认为“只适合中小企业”的年轻后辈。通过拿下纳斯达克、NTTDoCoMo等大型标杆客户,SQLServer正在全面出击、攻城掠地,已不惧怕任何竞争对手。Gartner近年的魔力象限报告也可以印证这一点:微软已在操作型数据库、分析型数据管理解决方案和商业智能等多个领域都处于领导者象限。

Gartner操作型数据库(ODBMS)魔力象限图[注12]

距离SQLServer2016短短一年,SQLServer2017就全新发布了,微软明显加快了更新的节奏。支持Linux的SQLServer2017完全有理由百尺竿头,更进一步。这是技术平台的选择,更是商业策略的创新。脱离Windows捆绑之后的SQLServer即将闯荡一片新的广阔市场。

从使用场景角度来看,如上述介绍,SQLServer现既可以从容应对高频OLTP负载,也可以作为面向OLAP的数据仓库,还可以打造为基于内存的实时数据处理组件,或是用作应用智能的驱动引擎——SQLServer已经变得非常“全能”。

另外值得一提的是,相比Oracle、SAP等竞争对手的细分产品策略和琳琅满目的产品列表,微软选择了“简单、集成”的设计哲学和商业模式。一个SQLServerEnterpriseEdition就囊括了竞品中可能需要分别单独购买的列存储、内存数据库等功能,商务层面更加便捷的同时,也简化了系统架构。从版本策略的角度,微软也进行了聪明的调整,将大多数的重要功能下放到了StandardEdition和ExpressEdition中,转而主要通过数据量级来划分版本,以便高级功能触达更多的潜在客户。此外,微软还特意推出了可免费下载安装的DeveloperEdition,除了不能用于生产环境之外,在功能与数据量级上与最高级的EnterpriseEdition完全一致,没有任何限制,大大降低了开发者们体验和尝试各项企业级功能的门槛。

一个绕不开的话题,也许是同MySQL、PostgreSQL等开源关系型数据库以及各种SQLonHadoop数据库的比较。客观地说,开源浪潮的确对商业数据库产生了巨大的冲击,出于直接成本的原因,以互联网行业为代表的诸多企业纷纷采用了开源方案。然而,随着多年来大家对开源体系与运作模式的理解不断加深,尤其是积累了大量的实践经验之后,市场逐渐趋于理性,开始更客观地看待开源模式的利弊和适用场景。天下毕竟没有免费的午餐,当企业的核心业务高负荷地运行在开源软件之上时,恐怕一样需要购买并不便宜的商业support服务,或是雇佣大量高级人才来了解和掌控底层的源码级细节。所以,不少企业会宁愿直接选择性能更佳、稳定性更高、企业级特性更丰富的商业数据库——因为对于这些企业来说,选择SQLServer具有更低的总体拥有成本。

从开发环境与工具生态上来看,SQLServer同样具有深厚的积累。向来口碑颇佳的SQLServerManagementStudio一直是微软持续投入的数据库综合管理工具,为SQLServer带来了强大而易用的图形化管理界面,可以免费下载使用;在各版本的VisualStudio中,也可以通过VS内置的ServerExplorer连接和查询SQLServer,与开发过程紧密联动——这些充分体现了微软大厂所能够带来的整合优势。另外值得一提的是,在编程语言支持方面,除了自家的C#/.NET,SQLServer团队近年来明显加大了对于其他流行语言支持的力度,尤其是Java和PHP,为这些语言和平台带来了高质量的客户端类库支持。

最后,说说SQLServer之于中国市场。其实在国内,得益于在教育领域的耕耘和出色的产品易用性,SQLServer一直有着比较好的群众基础和亲和形象。但若要在中国的高端市场打开局面,还需要进一步塑造品牌,打造标杆案例,消除之前给部分人群留下的“适用于中小企业”的陈旧印象。要做到这一点,除产品本身需不断提升以满足大客户苛刻需要外,还必须重视本地技术社区的建设,并帮助从业人员获得良好的职业发展,形成良性循环。另外,随着Azure云在中国的落地和发力,SQLServer家族也大可借公有云发展之势进行推广,分享增长红利。

写在最后

关系型数据库源远流长,在许多场景下仍具有不可替代的重要地位。SQLServer作为关系型数据库中的翘楚,一路走高,不断焕发着生机与活力。SQLServer2017的发布,有助于微软进一步巩固其市场地位,并通过支持Linux这一杀手锏,向新的市场发起有力冲击。

其实SQLServer特性之多,一文远不能穷尽。限于篇幅,我们没有提及AlwaysOn、AlwaysEncrypted等企业级特性,也没有详细介绍SQLServerIntegrationService、AnalysisService、ReportingService等商业智能套件。但通过本文上述的分析,我们已清晰地了解了这个投入巨资的商业关系数据库在新时代的大致轮廓与发展策略。如果用八个字来概括的话,“兼收并蓄,开放外联”当是最好的诠释。

那么,最后的问题来了:无论身处传统行业还是消费互联网,无论基于Linux还是Windows平台,你的下一个关键应用,会选择SQLServer吗?

作者介绍

何恺铎,国双科技(Nasdaq:GSUM)高级技术总监。毕业于清华大学,曾供职于摩根士丹利基础架构部门,2011年加入国双科技工作至今。数年来参与架构和设计了国双多个面向数字营销和社交聆听的大数据解决方案。个人关注的技术领域包括.Net生态系统、云计算、大数据技术栈等,曾撰写发表本文姊妹篇《从VisualStudio2017谈起,解析微软技术生态进化之道》。

【WINDRISES EMPLOYMENT PROGRAMMING】尊享对接老板

电话+V:1599997-8052

机构由一批拥有10年以上开发管理经验,且来自互联网或研究机构的IT精英组成,负责研究、开发教学模式和课程内容。公司具有完善的课程研发体系,一直走在整个行业发展的前端,在行业内竖立起了良好的品质口碑。

sql sever数据库引擎
相关帖子
  • 01
    饮水机上的一桶水为什么会无缘无故消失?饮水机漏水是什么原因饮水机漏水解决方法
    639
  • 02
    苹果手机投屏电视显示无法连接怎么办?苹果电视故障排查全攻略从无法开机到无线网络连接问题
    267
  • 03
    嫦娥一号卫星的结构系统,嫦娥一号的功能、结构特点、目的是什么?
    212
  • 04
    幸福猫舍真的能赚钱吗?开家庭猫舍需要什么条件
    195
  • 05
    iphone6 plus 怎么增加内存,iPhone11自动关机在上海哪里能修?
    183
  • 06
    新疆省库尔勒市老年大学有教太极拳的吗?库尔勒市团结街道“爱老敬老助老”志愿服务活动
    174
  • 07
    男孩子可以女装cos吗?漫展又出事了,coser燃放仙女棒被喷一脸,双方各有一套说法
    159
  • 08
    广东省梅州市蕉岭县邮政编码是什么?444身份证开头是哪里的
    148
  • 09
    北洋BTP-2200E标签打印机如何设置想要的表格数据打印,由于第一次用,真...新北洋打印机如何打印条码
    131
  • 10
    寒露是二十四节气中第几个节气,寒露节气,看哪里深秋已至寒意浓
    123
  • 11
    3dmax中的目标灯光强度一般调节到多少???小白怎样学会打好灯光的,原因就在这
    112
  • 12
    霉霉和侃爷怎么回事,霉霉和侃爷怎么回事 受尽侮辱霉霉坦言自己像是活在地狱
    111
  • 13
    高清智能电视怎么调试,户户通卫星锅怎样安装调试
    109
  • 14
    平头哥是什么 平头哥简单介绍,平头哥蜜獾为何能横行草原,谁都敢惹?单纯是因为凶猛吗?
    103
  • 15
    n+1补偿是什么意思,n+1赔偿是什么意思?
    100
相关广告
广告图
联系方式 微信
引擎网址:
百度
雅虎
360
谷歌
必应
本站导航:
首页
找供应商
找采购商
找企业
找产品
论坛
站点地图
友情链接:
太平洋
中关村
阿里巴巴
凤凰
新浪
腾讯
网易
搜狐
百度
交换链接:
免费获客网站、免费获客平台、免费产品获客【风起获客】
粤ICP备2024275337号-1 地址:广州市中山大道西1344号神秘花园1F1002 24小时服务热线:15999978052 联系QQ:1258690818 隐私条款
广州风起网络科技有限公司 Copyright © 2020 - 2026