达梦7的试用 与SQLSERVER的简单技术对比
达梦7的试用 与SQLSERVER的简单技术对比 达梦数据库公司推出了他们的数据库服务管理平台,可以在该平台使用达梦数据库而无须安装达梦7数据库 地址:http://online.dameng.com/ 说实话,第一眼看到还是感到很 高大上 的,毕竟 ORACLE 、 MYSQL 、 SQLSERVER
达梦7的试用 与SQLSERVER的简单技术对比
达梦数据库公司推出了他们的数据库服务管理平台,可以在该平台使用达梦数据库而无须安装达梦7数据库
地址:http://online.dameng.com/
说实话,第一眼看到还是感到很高大上的,毕竟ORACLE、MYSQL、SQLSERVER都没有推出数据库试用的云平台
其实其他数据库也应该学习一下达梦,做一个平台让大家有机会学习自家的数据库知识,虽然现在这个时代下载安装包比较容易,不过提供一个平台也是有好处的
达梦数据库文档下载:http://files.cnblogs.com/lyhabc/DM%E6%96%87%E6%A1%A3.rar
试用体验
达梦数据库使用的SQL语言是DM_SQL
达梦数据库的存储层次结构
有空的朋友可以看一下主页右下角的三个文档
具体的DM_SQL语法和命令大家可以参考DM_SQL.pdf
试用开始
1、我们先选择一个实例,达梦是这样的,一个实例下面只能挂一个数据库,不像SQLSERVER和MYSQL可以挂多个数据库
我们就选DM1这个实例,Windows的,有一些实例可能有人在用所以你会连接不上,当前会话数那里就显示了哪些实例是有在用的
而且这些实例下面有一些是已经有人建了数据库在上面的了
2、选择完实例之后,我们就可以创建数据库,我们打开新建查询窗口
脚本:
<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";
TIPS:如果实在不知道语句怎么写,不用担心,左边的管理器也有生成脚本的功能,只需要选中表然后按右键,弹出右键菜单
不过右下角没有显示您当前连接的是哪个实例哪个库,不是太方便
查看表属性,可以看到表是使用16K的块大小
管理界面
这个管理平台的基本功能
平台编辑器的功能:语法自动补全、自动格式代码、关键字自动高亮、调试、界面管理跟一个完整的数据库管理工具差不多
缺点是右下角没有显示出当前在使用的实例和数据库名
下面是部分功能截图
新建了数据库和模式之后,马上就可以在左边的树型菜单里看到新建的模式
可以看到当前达梦数据库是运行Windows2003系统上的
达梦里有比较多的系统工作线程,每个系统工作线程各司其职
例如rapply_worker_thread线程,他是日志重做线程,他在备机上进行日志重做,跟SQLSERVER是一样的,SQLSERVER里镜像、复制也有一样功能的线程
管理界面就介绍到这里了,继续讲下去好像偏离这篇文章的主体,大家有兴趣可以继续深入研究
技术对比
当你对某一个数据库研究得很深入的时候再学习另一种数据库就会发现,大部分原理都是相通的
例如技术实现原理,还有一些概念,只是换了名词已而
例如:
1、SQLSERVER的用户自定义函数,在MYSQL和达梦数据库里叫存储函数
2、MYSQL里面的事件(EVENT),就是SQLSERVER里面的作业(JOB)
3、达梦数据库里的动态性能视图,SQLSERVER里叫动态管理视图(DMV)
4、达梦数据库里的归档日志文件,SQLSERVER里的事务日志文件
5、MYSQL和达梦数据库里的表空间类似于SQLSERVER里的文件组
当然,上面的概念比较可能不太准确,如果有错误希望大家指正o(∩_∩)o
技术对比一
数据库备份
表空间备份
备份的时候,本人觉得大部分原理跟SQLSERVER都是一样的,备份的时候,SQLSERVER会把活动日志一同放进bak文件里面
目的就是保证事务的一致性,达梦数据库也是一样,联机备份的时候把归档日志写入备份文件
而达梦数据库脱机备份的意思是:因为数据库已经脱机,没有数据变更了,当前数据库里的事务都是一致的,所以这时候就无需把日志写入到备份文件里
表空间备份类似于SQLSERVER的文件/文件组备份,只备份数据库的一部分,备份文件组的时候SQLSERVER也是需要把事务日志写入到BAK文件
保证事务一致性
注意:SQLSERVER没有提供脱机备份功能
技术对比二
数据库还原
SQLERVER在还原的时候也是只支持脱机还原,要求不能有任何连接在连接当前要还原的数据库,保证一致性
在达梦里也有备份链原理,内部的原理应该跟SQLSERVER是一样的,详细参考:《您真的理解了SQLSERVER的日志链了吗?》
在SQLSERVER里也有类似达梦数据库的并行还原技术,在还原数据库的时候企业版的SQLSERVER也是使用了多线程技术进行还原
下面摘抄自《SQLSERVER2012实施与管理实战指南》
企业版的SQLSERVERR会针对上述情况做优化,主要在于下面两点:
1、多线程并行处理重做和回滚
在企业版上,SQLSERVER会启用多线程做重做和回滚操作。这样做的一个好处,是缩短恢复总体时间,
让数据库能够尽早上线
如果在SQLSERVER的errorlog里看到类似下面的信息,就说明SQL正在做一个比较大的恢复
技术对比三
数据守护
数据库的数据保护,不论Oracle还是SQLSERVER还是MySQL,都有三重含义
第一重是Crash后重新起来,要确保数据不丢失
第二重是数据库告诉应用事务写入成功了,这个事务就得持久化,如果没有告诉应用结果,则还可以丢失;
第三重是主机失败切换时(主从切换),如何表现得和没有切换时的情况一样。
每种数据库都有不同的数据守护技术(数据保护技术)
而每种数据库的数据保护技术都是大同小异的
达梦数据库的数据守护技术
连接服务名里的双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的,具体在这里不展开来讲了
有兴趣的朋友可以看一下宋沄剑写的《数据库集群技术漫谈》
技术对比四
数据库复制
数据库复制不算是数据守护的技术,所以不归到数据守护里面
在SQLSERVER里,有发布数据库、分发数据库、订阅数据库之分
而达梦里面主服务器就是发布库,复制服务器就是分发库,从服务器就是订阅库
达梦数据库的复制结构跟SQLSERVER差不多
技术对比五
上面都说了相同点,现在说一下不同点,但是由于篇幅限制,我这里只说达梦的数据库数据页面的结构是怎样的
达梦数据库的页面有不同的大小,有4K、8K、16K、32K,实际上达梦数据库将数据页面叫数据块
跟ORACLE一样也是叫数据块
达梦数据库在配置文件里设置数据块的大小,重启数据库服务之后,达梦就会读取配置文件新的配置信息(有点类似MYSQL)
在新建表的时候就会根据配置文件来创建数据块
而表的数据类型的长度根据当前数据块的大小的不同而不同
而在SQLSERVER里面,是不能设置数据页面的大小的,每个数据页面的大小都是8K
重头戏:COUNT(*)统计结果行数
大家注意下划线部分!!
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>
本人之前也写过一篇,至于哪个观点正确留给大家去思考了
《SQLSERVER 里SELECT COUNT(1) 和SELECT COUNT(*)哪个性能好?》
总结
虽然大部分原理一样,但是语法跟数据库的结构还是有一些出入
所以当DBA从一种数据库转型到另一种数据库的时候还是需要一段时间的学习
例如从SQLSERVER转到MYSQL 或者ORACLE转到SQLSERVER
本文通过技术对比,可以使大家对达梦数据库的技术含量有一个度,虽然没有实际使用过,最起码了解一下我们国家的自主知识产权的产品还是不错的
实际上,达梦数据库的基本功能:序列、全文索引、策略、表分区。。。
这些该有的功能都有了,大家可以看一下文档,比较一下与ORACLE、SQLSERVER、MYSQL的区别
基本上这些数据库有的功能达梦都有
希望达梦这支国家队能够越来越强大的,在数据库方面使国家能够早日摆脱外国的数据库大佬们的制约
如有不对的地方,欢迎大家拍砖o(∩_∩)o

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











가져오기 단계는 다음과 같습니다. MDF 파일을 SQL Server의 데이터 디렉터리(일반적으로 C:\Program Files\Microsoft SQL Server\MSSQL\DATA)에 복사합니다. SSMS(SQL Server Management Studio)에서 데이터베이스를 열고 연결을 선택합니다. 추가 버튼을 클릭하고 MDF 파일을 선택합니다. 데이터베이스 이름을 확인하고 확인 버튼을 클릭합니다.

SQL Server 데이터베이스에 이미 존재하는 동일한 이름을 가진 개체의 경우 다음 단계를 수행해야 합니다. 개체 유형(테이블, 뷰, 저장 프로시저)을 확인합니다. IF NOT EXISTS를 사용하면 객체가 비어 있는 경우 생성을 건너뛸 수 있습니다. 개체에 데이터가 있는 경우 다른 이름을 사용하거나 구조를 수정하세요. 기존 개체를 삭제하려면 DROP을 사용하세요. 주의하세요. 백업을 권장합니다. 삭제되거나 이름이 바뀐 개체에 대한 참조가 없는지 확인하려면 스키마 변경 사항을 확인하세요.

SQL Server 포트 번호를 보려면 SSMS를 열고 서버에 연결합니다. 개체 탐색기에서 서버 이름을 찾아 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 연결 탭에서 TCP 포트 필드를 확인하세요.

SQL Server 서비스가 시작되지 않는 경우 해결해야 할 몇 가지 단계는 다음과 같습니다. 오류 로그를 확인하여 근본 원인을 확인합니다. 서비스 계정에 서비스를 시작할 수 있는 권한이 있는지 확인하세요. 종속성 서비스가 실행 중인지 확인하세요. 바이러스 백신 소프트웨어를 비활성화합니다. SQL Server 설치를 복구합니다. 복구가 작동하지 않으면 SQL Server를 다시 설치하십시오.

실수로 SQL Server 데이터베이스를 삭제한 경우 다음 단계를 수행하여 복구할 수 있습니다. 데이터베이스 활동 중지, 데이터베이스 로그 확인, 백업에서 복원, DBCC CHECKDB 사용 파티 도구. 데이터 손실을 방지하려면 데이터베이스를 정기적으로 백업하고 트랜잭션 로깅을 활성화하십시오.

SQL Server 데이터베이스 파일은 일반적으로 다음 기본 위치에 저장됩니다. Windows: C:\Program Files\Microsoft SQL Server\MSSQL\DATALinux: /var/opt/mssql/data 데이터베이스 파일 경로를 수정하여 데이터베이스 파일 위치를 사용자 정의할 수 있습니다. 환경.

현재 통화계에서 선호하는 잠재적 코인으로는 SOL 코인과 BCH 코인이 있습니다. SOL은 솔라나 블록체인 플랫폼의 기본 토큰이며 비트코인의 포크 통화인 BitcoinCash 프로젝트의 토큰입니다. 기술적 특성, 적용 시나리오, 개발 방향이 다르기 때문에 투자자들이 둘 중 하나를 선택하기가 어렵습니다. SOL 통화와 BCH 중 어느 것이 더 잠재력이 있는지 분석하고 싶습니다. 다시 투자하세요. 그러나 통화를 비교하려면 시장, 개발 전망, 프로젝트 강도 등에 따른 종합적인 분석이 필요합니다. 다음에는 에디터가 자세히 알려드리겠습니다. SOL 코인과 BCH 중 어느 것이 더 잠재력이 있나요? 이에 비해 SOL 통화는 더 많은 잠재력을 가지고 있습니다. SOL 통화 또는 BCH 중 어느 것이 더 많은 잠재력을 가지고 있는지 결정하는 것은 많은 요인에 따라 달라지기 때문에 복잡한 문제입니다.

Windows 10 vs. Windows 11 성능 비교: 어느 것이 더 낫나요? 지속적인 기술 개발과 발전으로 운영 체제는 지속적으로 업데이트되고 업그레이드됩니다. 세계 최대 운영 체제 개발자 중 하나인 Microsoft의 Windows 운영 체제 시리즈는 항상 사용자로부터 많은 관심을 받아 왔습니다. 2021년에 Microsoft는 Windows 11 운영 체제를 출시하여 광범위한 논의와 관심을 불러일으켰습니다. 그렇다면 Windows 10과 Windows 11의 성능 차이는 무엇입니까?
