搜尋
首頁資料庫mysql教程达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比 达梦数据库公司推出了他们的数据库服务管理平台,可以在该平台使用达梦数据库而无须安装达梦7数据库 地址:http://online.dameng.com/ 说实话,第一眼看到还是感到很 高大上 的,毕竟 ORACLE 、 MYSQL 、 SQLSERVER

达梦7的试用 与SQLSERVER的简单技术对比

达梦数据库公司推出了他们的数据库服务管理平台,可以在该平台使用达梦数据库而无须安装达梦7数据库

地址:http://online.dameng.com/

说实话,第一眼看到还是感到很高大上的,毕竟ORACLEMYSQLSQLSERVER都没有推出数据库试用的云平台

其实其他数据库也应该学习一下达梦,做一个平台让大家有机会学习自家的数据库知识,虽然现在这个时代下载安装包比较容易,不过提供一个平台也是有好处的

达梦数据库文档下载:http://files.cnblogs.com/lyhabc/DM%E6%96%87%E6%A1%A3.rar

 达梦7的试用 与SQLSERVER的简单技术对比

 


试用体验

达梦数据库使用的SQL语言是DM_SQL

达梦7的试用 与SQLSERVER的简单技术对比

 

达梦数据库的存储层次结构

达梦7的试用 与SQLSERVER的简单技术对比

有空的朋友可以看一下主页右下角的三个文档

达梦7的试用 与SQLSERVER的简单技术对比 

 

具体的DM_SQL语法和命令大家可以参考DM_SQL.pdf

达梦7的试用 与SQLSERVER的简单技术对比

 

 


试用开始

1、我们先选择一个实例,达梦是这样的,一个实例下面只能挂一个数据库,不像SQLSERVER和MYSQL可以挂多个数据库

我们就选DM1这个实例,Windows的,有一些实例可能有人在用所以你会连接不上,当前会话数那里就显示了哪些实例是有在用的

而且这些实例下面有一些是已经有人建了数据库在上面的了

达梦7的试用 与SQLSERVER的简单技术对比

2、选择完实例之后,我们就可以创建数据库,我们打开新建查询窗口

达梦7的试用 与SQLSERVER的简单技术对比

 达梦7的试用 与SQLSERVER的简单技术对比

 脚本:

达梦7的试用 与SQLSERVER的简单技术对比达梦7的试用 与SQLSERVER的简单技术对比

<span>--</span><span>建库</span>
<span>CREATE</span> TABLESPACE BOOKSHOP DATAFILE <span>'</span><span>BOOKSHOP.DBF</span><span>'</span> SIZE <span>150</span>

<span>--</span><span>创建模式和表</span>
<span>CREATE</span> <span>SCHEMA</span> RESOURCES <span>AUTHORIZATION</span><span> SYSDBA


</span><span>CREATE</span> <span>TABLE</span><span> RESOURCES.COMPANYHOLIDAYS
(
  HOLIDAY DATE
)STORAGE(</span><span>ON</span><span> BOOKSHOP);

</span><span>--</span><span>插入数据</span>
<span>INSERT</span> <span>INTO</span><span> RESOURCES.COMPANYHOLIDAYS(HOLIDAY)
</span><span>VALUES</span>(<span>'</span><span>2007-7-21</span><span>'</span><span>)

</span><span>INSERT</span> <span>INTO</span><span> RESOURCES.COMPANYHOLIDAYS(HOLIDAY)
</span><span>VALUES</span>(<span>'</span><span>2008-8-26</span><span>'</span><span>)

</span><span>INSERT</span> <span>INTO</span><span> RESOURCES.COMPANYHOLIDAYS(HOLIDAY)
</span><span>VALUES</span>(<span>'</span><span>2010-10-2</span><span>'</span><span>)


</span><span>--</span><span>查询数据</span>
<span>select</span><span> "HOLIDAY"
</span><span>from</span> "RESOURCES"."COMPANYHOLIDAYS";
View Code

TIPS:如果实在不知道语句怎么写,不用担心,左边的管理器也有生成脚本的功能,只需要选中表然后按右键,弹出右键菜单

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

不过右下角没有显示您当前连接的是哪个实例哪个库,不是太方便

 

 

查看表属性,可以看到表是使用16K的块大小

达梦7的试用 与SQLSERVER的简单技术对比

管理界面

达梦7的试用 与SQLSERVER的简单技术对比


这个管理平台的基本功能

 

平台编辑器的功能:语法自动补全、自动格式代码、关键字自动高亮、调试、界面管理跟一个完整的数据库管理工具差不多

缺点是右下角没有显示出当前在使用的实例和数据库名

 

下面是部分功能截图

新建了数据库和模式之后,马上就可以在左边的树型菜单里看到新建的模式

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

 达梦7的试用 与SQLSERVER的简单技术对比

 达梦7的试用 与SQLSERVER的简单技术对比

可以看到当前达梦数据库是运行Windows2003系统上的达梦7的试用 与SQLSERVER的简单技术对比

达梦里有比较多的系统工作线程,每个系统工作线程各司其职

例如rapply_worker_thread线程,他是日志重做线程,他在备机上进行日志重做,跟SQLSERVER是一样的,SQLSERVER里镜像、复制也有一样功能的线程

达梦7的试用 与SQLSERVER的简单技术对比

 达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

管理界面就介绍到这里了,继续讲下去好像偏离这篇文章的主体,大家有兴趣可以继续深入研究


技术对比

当你对某一个数据库研究得很深入的时候再学习另一种数据库就会发现,大部分原理都是相通的

例如技术实现原理,还有一些概念,只是换了名词已而

例如:

1、SQLSERVER的用户自定义函数,在MYSQL和达梦数据库里叫存储函数

2、MYSQL里面的事件(EVENT),就是SQLSERVER里面的作业(JOB)

3、达梦数据库里的动态性能视图,SQLSERVER里叫动态管理视图(DMV)

4、达梦数据库里的归档日志文件,SQLSERVER里的事务日志文件

5、MYSQL和达梦数据库里的表空间类似于SQLSERVER里的文件组

当然,上面的概念比较可能不太准确,如果有错误希望大家指正o(∩_∩)o 

 

技术对比一

数据库备份

达梦7的试用 与SQLSERVER的简单技术对比

表空间备份

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

 

备份的时候,本人觉得大部分原理跟SQLSERVER都是一样的,备份的时候,SQLSERVER会把活动日志一同放进bak文件里面

目的就是保证事务的一致性,达梦数据库也是一样,联机备份的时候把归档日志写入备份文件

而达梦数据库脱机备份的意思是:因为数据库已经脱机,没有数据变更了,当前数据库里的事务都是一致的,所以这时候就无需把日志写入到备份文件里

表空间备份类似于SQLSERVER的文件/文件组备份,只备份数据库的一部分,备份文件组的时候SQLSERVER也是需要把事务日志写入到BAK文件

保证事务一致性

注意:SQLSERVER没有提供脱机备份功能

 

技术对比二

数据库还原

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

SQLERVER在还原的时候也是只支持脱机还原,要求不能有任何连接在连接当前要还原的数据库,保证一致性

在达梦里也有备份链原理,内部的原理应该跟SQLSERVER是一样的,详细参考:《您真的理解了SQLSERVER的日志链了吗?》

在SQLSERVER里也有类似达梦数据库的并行还原技术,在还原数据库的时候企业版的SQLSERVER也是使用了多线程技术进行还原

下面摘抄自《SQLSERVER2012实施与管理实战指南》

企业版的SQLSERVERR会针对上述情况做优化,主要在于下面两点:

1、多线程并行处理重做和回滚

在企业版上,SQLSERVER会启用多线程做重做和回滚操作。这样做的一个好处,是缩短恢复总体时间,

让数据库能够尽早上线

如果在SQLSERVER的errorlog里看到类似下面的信息,就说明SQL正在做一个比较大的恢复

达梦7的试用 与SQLSERVER的简单技术对比

 

技术对比三

数据守护

数据库的数据保护,不论Oracle还是SQLSERVER还是MySQL,都有三重含义

第一重是Crash后重新起来,要确保数据不丢失

第二重是数据库告诉应用事务写入成功了,这个事务就得持久化,如果没有告诉应用结果,则还可以丢失;

第三重是主机失败切换时(主从切换),如何表现得和没有切换时的情况一样。

 

每种数据库都有不同的数据守护技术(数据保护技术)

而每种数据库的数据保护技术都是大同小异的

达梦数据库的数据守护技术

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

连接服务名里的双IP配置类似于SQLSERVER的连接字符串里指定镜像伙伴,当发生故障转移的时候,自动将程序的连接重定向

到备机

SQLSERVER里面使用镜像技术时,C#的连接字符串,Partner=myMirrorServerAddress指定备机地址,故障发生的时候.NET Data Provider

自动重定向连接到备机

Database mirroring    --<span>数据库镜像 连接字符串 C# 
Data Source</span>=myServerAddress;Failover Partner=<span>myMirrorServerAddress;
Initial Catalog</span>=myDataBase;Integrated Security=True;

 

SQLSERVER里的镜像技术原理,下面摘抄自《SQLSERVER2012实施与管理实战指南》

数据库镜像的基本概念讲得差不多了。那么主体数据库和镜像数据库是如何同步数据的呢?

SQL数据库中任何的数据变化都会先记录到事务日志中,然后才会真正更新数据页面。

而事务日志是先保存在该数据库的日志缓存(log buffer)里,然后将缓冲中的日志固化到磁盘上LDF文件中。

在数据库镜像中,主体服务器在将主体数据库的日志从日志缓存固化到磁盘的同时,

还会使用另一个线程来将日志块(log block)发送到镜像服务器的端点。

当镜像服务器通过端点接收到日志块后,他先将日志块放到镜像数据库的日志缓存里,然后将缓存里的日志固化到磁盘上。

一旦日志块被固化后,镜像服务器会根据日志来对镜像数据库执行“重做(redo)”,最终更新数据页面。

镜像服务器重做日志时,镜像数据库实际就是在执行日志的前滚操作

如果重做失败,则镜像服务器通过将数据库至于suspended状态来暂停会话。

DBA必须找到问题的原因并解决问题才能继续会话。

当主体服务器截断或收缩数据库事务日志时,镜像服务器也将在日志的同一点收缩日志。

 

可以看到,数据库镜像其实就是通过发送日志来保持伙伴之间的同步。

从SQL2008开始,日志块在被主体服务器发送网络之前会做压缩处理。

这麽做的目的是为了提升日志发送和接收的效率,降低日志块传输对网络链路和网络设备所带来的负载。

对应那些异常繁忙的生产系统,这项功能不但降低了由于网络不胜负荷的镜像会话异常中断,

也降低由于网络延迟导致的数据库镜像性能问题,可谓一举两得。

 

达梦数据库的数据守护技术实际上是对应于SQLSERVER 的Always On技术和镜像技术

SQLSERVER 的Always On技术镜像技术都是高可用技术,由于每种数据库对一些名词概念都采用自己的叫法

例如SQLSERVER里叫高可用,而MYSQL和ORACLE叫可用性,达梦里面叫数据守护,叫法不同,实际上都是指同一样东西

因为叫法的不同导致有一些ORACLE专家以为SQLSERVER没有可用性的方案和产品

ORACLE:RAC集群、Data guard 

MYSQL:MYSQL CLUSTER

SQLSERVER:Always On、镜像

 

有一些架构是share-disk,而有一些架构是share-nothing的,具体在这里不展开来讲了

有兴趣的朋友可以看一下宋沄剑写的《数据库集群技术漫谈》

 

技术对比四

数据库复制

数据库复制不算是数据守护的技术,所以不归到数据守护里面

达梦7的试用 与SQLSERVER的简单技术对比

达梦7的试用 与SQLSERVER的简单技术对比

在SQLSERVER里,有发布数据库、分发数据库、订阅数据库之分

而达梦里面主服务器就是发布库,复制服务器就是分发库,从服务器就是订阅库

达梦数据库的复制结构跟SQLSERVER差不多

 

技术对比五

上面都说了相同点,现在说一下不同点,但是由于篇幅限制,我这里只说达梦的数据库数据页面的结构是怎样的

 

达梦数据库的页面有不同的大小,有4K、8K、16K、32K,实际上达梦数据库将数据页面叫数据块

跟ORACLE一样也是叫数据块

达梦数据库在配置文件里设置数据块的大小,重启数据库服务之后,达梦就会读取配置文件新的配置信息(有点类似MYSQL)

在新建表的时候就会根据配置文件来创建数据块

 

而表的数据类型的长度根据当前数据块的大小的不同而不同

达梦7的试用 与SQLSERVER的简单技术对比

 

而在SQLSERVER里面,是不能设置数据页面的大小的,每个数据页面的大小都是8K


重头戏:COUNT(*)统计结果行数

达梦7的试用 与SQLSERVER的简单技术对比

大家注意下划线部分!!

SQLSERVER跟达梦是一样的

<span>USE</span> <span>[</span><span>sss</span><span>]</span>
<span>CREATE</span> <span>TABLE</span> counttb(id <span>INT</span> <span>NULL</span><span>)

</span><span>INSERT</span> <span>INTO</span> <span>[</span><span>dbo</span><span>]</span>.<span>[</span><span>counttb</span><span>]</span><span>
        ( </span><span>[</span><span>id</span><span>]</span><span> )
</span><span>SELECT</span> <span>1</span> <span>UNION</span> <span>ALL</span> 
<span>SELECT</span> <span>NULL</span> 

<span>SELECT</span> <span>COUNT</span>(<span>1</span>),<span>COUNT</span>(<span>*</span>),<span>COUNT</span>(id) <span>FROM</span> <span>[</span><span>dbo</span><span>]</span>.<span>[</span><span>counttb</span><span>]</span>

达梦7的试用 与SQLSERVER的简单技术对比

 

本人之前也写过一篇,至于哪个观点正确留给大家去思考了

《SQLSERVER 里SELECT COUNT(1) 和SELECT COUNT(*)哪个性能好?》


总结

虽然大部分原理一样,但是语法跟数据库的结构还是有一些出入

所以当DBA从一种数据库转型到另一种数据库的时候还是需要一段时间的学习

例如从SQLSERVER转到MYSQL 或者ORACLE转到SQLSERVER

 

本文通过技术对比,可以使大家对达梦数据库的技术含量有一个度,虽然没有实际使用过,最起码了解一下我们国家的自主知识产权的产品还是不错的

 

实际上,达梦数据库的基本功能:序列、全文索引、策略、表分区。。。

这些该有的功能都有了,大家可以看一下文档,比较一下与ORACLE、SQLSERVER、MYSQL的区别

基本上这些数据库有的功能达梦都有

希望达梦这支国家队能够越来越强大的,在数据库方面使国家能够早日摆脱外国的数据库大佬们的制约

 

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
解釋InnoDB緩衝池及其對性能的重要性。解釋InnoDB緩衝池及其對性能的重要性。Apr 19, 2025 am 12:24 AM

InnoDBBufferPool通過緩存數據和索引頁來減少磁盤I/O,提升數據庫性能。其工作原理包括:1.數據讀取:從BufferPool中讀取數據;2.數據寫入:修改數據後寫入BufferPool並定期刷新到磁盤;3.緩存管理:使用LRU算法管理緩存頁;4.預讀機制:提前加載相鄰數據頁。通過調整BufferPool大小和使用多個實例,可以優化數據庫性能。

MySQL與其他編程語言:一種比較MySQL與其他編程語言:一種比較Apr 19, 2025 am 12:22 AM

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。MySQL以其高性能、可扩展性和跨平台支持著称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

學習MySQL:新用戶的分步指南學習MySQL:新用戶的分步指南Apr 19, 2025 am 12:19 AM

MySQL值得學習,因為它是強大的開源數據庫管理系統,適用於數據存儲、管理和分析。 1)MySQL是關係型數據庫,使用SQL操作數據,適合結構化數據管理。 2)SQL語言是與MySQL交互的關鍵,支持CRUD操作。 3)MySQL的工作原理包括客戶端/服務器架構、存儲引擎和查詢優化器。 4)基本用法包括創建數據庫和表,高級用法涉及使用JOIN連接表。 5)常見錯誤包括語法錯誤和權限問題,調試技巧包括檢查語法和使用EXPLAIN命令。 6)性能優化涉及使用索引、優化SQL語句和定期維護數據庫。

MySQL:初學者的基本技能MySQL:初學者的基本技能Apr 18, 2025 am 12:24 AM

MySQL適合初學者學習數據庫技能。 1.安裝MySQL服務器和客戶端工具。 2.理解基本SQL查詢,如SELECT。 3.掌握數據操作:創建表、插入、更新、刪除數據。 4.學習高級技巧:子查詢和窗口函數。 5.調試和優化:檢查語法、使用索引、避免SELECT*,並使用LIMIT。

MySQL:結構化數據和關係數據庫MySQL:結構化數據和關係數據庫Apr 18, 2025 am 12:22 AM

MySQL通過表結構和SQL查詢高效管理結構化數據,並通過外鍵實現表間關係。 1.創建表時定義數據格式和類型。 2.使用外鍵建立表間關係。 3.通過索引和查詢優化提高性能。 4.定期備份和監控數據庫確保數據安全和性能優化。

MySQL:解釋的關鍵功能和功能MySQL:解釋的關鍵功能和功能Apr 18, 2025 am 12:17 AM

MySQL是一個開源的關係型數據庫管理系統,廣泛應用於Web開發。它的關鍵特性包括:1.支持多種存儲引擎,如InnoDB和MyISAM,適用於不同場景;2.提供主從復制功能,利於負載均衡和數據備份;3.通過查詢優化和索引使用提高查詢效率。

SQL的目的:與MySQL數據庫進行交互SQL的目的:與MySQL數據庫進行交互Apr 18, 2025 am 12:12 AM

SQL用於與MySQL數據庫交互,實現數據的增、刪、改、查及數據庫設計。 1)SQL通過SELECT、INSERT、UPDATE、DELETE語句進行數據操作;2)使用CREATE、ALTER、DROP語句進行數據庫設計和管理;3)複雜查詢和數據分析通過SQL實現,提升業務決策效率。

初學者的MySQL:開始數據庫管理初學者的MySQL:開始數據庫管理Apr 18, 2025 am 12:10 AM

MySQL的基本操作包括創建數據庫、表格,及使用SQL進行數據的CRUD操作。 1.創建數據庫:CREATEDATABASEmy_first_db;2.創建表格:CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY,titleVARCHAR(100)NOTNULL,authorVARCHAR(100)NOTNULL,published_yearINT);3.插入數據:INSERTINTObooks(title,author,published_year)VA

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。