成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

蓋國強老師談DM6.0中DML操作與性能體驗

數據庫 其他數據庫
本文由Oracle ACE蓋國強老師撰寫,主要是對于國產數據庫DM6.0中DML操作和性能體驗。可以說國產數據庫在某些領域還是需要發展起來的。

對于國產數據庫,51CTO一直持支持態度,在關鍵領域需要有我們自己的數據庫產品。而本文作者蓋國強老師,51CTO數據庫頻道也撰寫過《51CTO專訪蓋國強:NoSQL很火 但還需市場檢驗》這樣的文章。

拿到達夢國產數據庫,我最感興趣的并不是一些高端功能,更關注的是達夢在基本操作方面的性能,在數據庫技術大會上,我曾經提到,其實對于Oracle數據庫來說,其核心的功能從Oracle 7之后就很少變化,之后的版本,更多的是錦上不斷添花的增強,而我們的國產數據庫,如果能夠扎扎實實做好基礎工作,則未來是非常值得期待的。

以下是我的一些基礎測試和對達夢的感覺。

1. 登陸與密碼驗證

安裝達夢數據庫之后,第一個遇到的是登陸問題,達夢數據庫初始創立了3個用戶,分別是 SYSDBA,SYSAUDITOR,SYSSSO,初始口令相同。這里我遇到的小小麻煩是,口令大小寫問題,注意:達夢這三個缺省用戶的口令是大寫的,而且區分大小寫。

  1. C:\dmdbms\bin>isql  
  2. isql V6.0.2.51-Build(2009.12.23)  
  3. SQL>login  
  4. server name:localhost  
  5. user name:sysdba  
  6. password:  
  7. port:12345  
  8. dm_login time used:80.306(ms) 

未經授權的用戶

Login first.

 

這里的提示"未經授權的用戶"讓我困惑了好久,如果提示"用戶名或口令錯誤",可能更易于理解。多次嘗試之后,我把口令改為大寫,成功登入數據庫:

 

  1. SQL>login  
  2. server name:localhost  
  3. user name:SYSDBA  
  4. password:  
  5. port:12345  
  6. dm_login time used:71.900(ms) 

2. DML操作的基本測試

在達夢中創建數據表以及進行基本的過程編寫符合標準,完全可以和Oracle通用。在ISQL中,缺省的會顯示每個操作步驟的時間,以毫秒顯示。

以下創建一個基本的測試表,做出一點簡單的測試:

  1. SQL>CREATE TABLE EYGLE (  
  2. 2   ID          NUMBER,  
  3. 3   NAME        VARCHAR2(30),  
  4. 4   MAIL        VARCHAR2(60),  
  5. 5   PHONE       VARCHAR2(60),  
  6. 6   LDATE       DATE);  
  7. CREATE TABLE EYGLE (  
  8. ID              NUMBER,  
  9. NAME    VARCHAR2(30),  
  10. MAIL    VARCHAR2(60),  
  11. PHONE   VARCHAR2(60),  
  12. LDATE   DATE);  
  13.  
  14. time used: 1.860(ms) clock tick:3364215.  
  15. SQL>SELECT * FROM EYGLE;  
  16. SELECT * FROM EYGLE; 

ID              NAME            MAIL            PHONE           LDATE

0 rows got

 

time used: 0.850(ms) clock tick:1727965.

 

通過一個Loop循環,插入10萬條測試記錄,耗時大約1841 ms:

 

  1. SQL>begin 
  2. 2   for i in 1 .. 100000 loop  
  3. 3   insert into eygle values(i,'eygle','eygle@eygle.com','13911812803',sysdate);  
  4. 4   end loop;  
  5. 5   end;  
  6. 6   /  
  7. begin 
  8. for i in 1 .. 100000 loop  
  9. insert into eygle values(i,'eygle','eygle@eygle.com','13911812803',sysdate);  
  10. end loop;  
  11. end;  
  12. rows affected  
  13. time used: 1841.828(ms) clock tick:3771986460.  
  14. SQL>select * from eygle where rownum <2;  
  15. select * from eygle where rownum <2; 

ID              NAME            MAIL            PHONE           LDATE

1       1       eygle   eygle@eygle.com 13911812803     2010-04-19

1 rows got

 

time used: 1.577(ms) clock tick:3217072.

 

回退這個批量的INSERT操作,需要大約325ms:

 

  1. SQL>rollback;  
  2. rollback;  
  3. time used: 325.134(ms) clock tick:665851724. 

對比一下在Oracle中的同樣操作(Oracle選擇初始安裝,未調整,10.2.0.4版本):

  1. C:\Users\eygle>sqlplus "/ as sysdba"  
  2.  
  3. SQL*Plus: Release 10.2.0.4.0 - Production on 星期一 4月 19 11:56:32 2010  
  4. Copyright (c) 1982, 2007, Oracle.  All Rights Reserved. 

連接到:

  1. Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production  
  2. With the Partitioning, OLAP, Data Mining and Real Application Testing options  
  3.  
  4. SQL> select name from v$database;  
  5.  
  6. NAME 
  7. ---------  
  8. EYGLE  
  9.  
  10. SQL> create user eygle identified by eygle; 

用戶已創建。

  1. SQL> grant connect,resource,dba to eygle; 

授權成功。

  1. SQL> connect eygle/eygle 

 

已連接。

 

  1. SQL> set timing on 
  2. SQL> CREATE TABLE EYGLE (  
  3.   2  ID         NUMBER,  
  4.   3  NAME       VARCHAR2(30),  
  5.   4  MAIL       VARCHAR2(60),  
  6.   5  PHONE      VARCHAR2(60),  
  7.   6  LDATE      DATE); 

表已創建。

在Oracle中,這個LOOP循環共耗時4130ms,回退這個事務則用了670ms,不考察內部原理及其他相關技術實現,達夢在這個基本操作上,是有不錯的體現的:

 

  1. SQL> begin 
  2.   2  for i in 1 .. 100000 loop  
  3.   3  insert into eygle values(i,'eygle','eygle@eygle.com','13911812803',sysdate);  
  4.   4  end loop;  
  5.   5  end;  
  6.   6  / 

PL/SQL 過程已成功完成。

已用時間:  00: 00: 04.13

SQL> rollback;

 

回退已完成。

已用時間:  00: 00: 00.67

進一步的,在達夢數據庫中再次創建這些數據并提交,同時進行進一步數據追加,追加數據用時879ms:

  1. SQL>begin 
  2. 2   for i in 1 .. 100000 loop  
  3. 3   insert into eygle values(i,'eygle','eygle@eygle.com','13911812803',sysdate);  
  4. 4   end loop;  
  5. 5   end;  
  6. 6   /  
  7. begin 
  8. for i in 1 .. 100000 loop  
  9. insert into eygle values(i,'eygle','eygle@eygle.com','13911812803',sysdate);  
  10. end loop;  
  11. end;  
  12. rows affected  
  13. time used: 1764.746(ms) clock tick:3614125982.  
  14. SQL>commit;  
  15. commit;  
  16.  
  17. time used: 2.361(ms) clock tick:3931726.  
  18.  
  19. SQL>insert into eygle select * from eygle;  
  20. insert into eygle select * from eygle;  
  21.  
  22. 100000 rows affected  
  23. time used: 879.129(ms) clock tick:1800413670.  
  24. SQL>commit;  
  25. commit;  
  26.  
  27. time used: 1.975(ms) clock tick:3076490. 

而在Oracle中,這個時間消耗是1960ms:

  1. SQL> begin 
  2.   2  for i in 1 .. 100000 loop  
  3.   3  insert into eygle values(i,'eygle','eygle@eygle.com','13911812803',sysdate);  
  4.   4  end loop;  
  5.   5  end;  
  6.   6  / 

PL/SQL 過程已成功完成。

已用時間:  00: 00: 03.26

SQL> commit;

 

提交完成。

已用時間:  00: 00: 00.00

  1. SQL> insert into eygle select * from eygle; 

已創建100000行。

已用時間:  00: 00: 01.96

SQL> commit;

 

提交完成。

已用時間:  00: 00: 00.00

最后測試一下刪除與更新操作,批量刪除20w數據用時530ms,更新單字段,用時4297ms:

  1. SQL>delete from eygle;  
  2. delete from eygle;  
  3.  
  4. 200000 rows affected  
  5. time used: 530.098(ms) clock tick:1025037644.  
  6. SQL>rollback;  
  7. rollback;  
  8.  
  9. time used: 591.067(ms) clock tick:1210472582.  
  10.  
  11. SQL>UPDATE EYGLE SET NAME='EYGLE@2010';  
  12. UPDATE EYGLE SET NAME='EYGLE@2010';  
  13.  
  14. 200000 rows affected  
  15. time used: 4297.675(ms) clock tick:3718914483.  
  16. SQL>rollback;  
  17. rollback;  
  18.  
  19. time used: 3810.759(ms) clock tick:744454156. 

對于Oracle來說,這兩個數字分別是6080 ms 和 5890 ms:

  1. SQL> delete from eygle; 

已刪除200000行。

已用時間:  00: 00: 06.08

  1. SQL> rollback

回退已完成。

已用時間:  00: 00: 02.66

  1. SQL>  
  2. SQL> UPDATE EYGLE SET NAME='EYGLE@2010'

已更新200000行。

已用時間:  00: 00: 05.89

  1. SQL> ROLLBACK

回退已完成。

已用時間:  00: 00: 05.68

通過簡單的單用戶DML操作測試,達夢數據庫的性能是非常良好的。Oracle數據庫的UNDO與REDO機制是其特有的關鍵特性,這些特性衍生出強大的關聯數據庫功能;而我們目前對達夢的兩方面的實現還知之甚少,希望在后續的測試和研究中,能夠對這兩方面的技術加深理解,進一步領會和對比這兩大數據庫平臺。

 

蓋國強先生簡介

[[10366]]

蓋國強,+10 年Oracle數據庫使用經驗,+ 8 年Oracle DBA管理與實踐經驗。

曾任職于某國家大型企業,服務于煙草行業,開發過基于Oracle數據庫的大型ERP系統;后任職于北京某電信增值服務商企業,提供電信級數據庫的規劃與運維支持。目前從事獨立的數據庫服務、數據庫咨詢,專注于為中國企業提供中立、專業的數據庫服務。

實踐經驗豐富,長于數據庫診斷、性能調整與SQL優化等。對于Oracle內部技術等具有深入研究。高級培訓講師,培訓經驗豐富。以上資料來自北京恩墨科技有限公司(www.eygle.com)。

【編輯推薦】

  1. Oracle數據庫的DML語句功能介紹
  2. 清除Oracle中無用索引 改善DML性能
  3. Oracle數據庫與DM的強制訪問的不同之處
  4. 51CTO專訪蓋國強:NoSQL很火 但還需市場檢驗
  5. 關閉Oracle死鎖進程的具體操作步驟
責任編輯:彭凡 來源: ITPUB
相關推薦

2013-10-30 16:15:03

2013年度IT博客大蓋國強

2010-04-02 22:02:19

蓋國強NoSQL

2011-04-25 13:56:09

iPad2聰明蓋兒

2011-06-09 17:18:09

2009-09-18 14:09:07

2015-04-15 10:38:14

NullObjectC#6.0改進

2011-06-14 10:31:06

用戶體驗

2011-07-20 09:50:18

2011-03-03 14:57:00

手機交互設計產品管理信息架構

2024-12-13 08:25:59

DML操作SQL

2021-01-18 17:46:05

釘釘用戶體驗評測

2009-05-05 14:08:52

EMC存儲虛擬化

2009-08-17 09:30:28

.NET 4.0

2013-08-19 09:44:59

Android設計指導Android Des

2015-04-24 13:54:42

平安WiFi

2023-12-13 11:26:15

Linuxbeta 版本

2010-04-27 13:06:11

Qomo 6.0

2012-02-13 14:33:53

筆記本評測

2011-11-10 16:04:19

筆記本評測

2023-11-01 11:59:13

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品一区 | 成人精品视频在线观看 | 日韩成人免费视频 | 欧美性猛交一区二区三区精品 | 1区2区视频 | 午夜精品一区二区三区在线观看 | 日韩欧美国产综合 | 超碰欧美 | 91热在线| 国产人成在线观看 | 日韩欧美视频 | 婷婷久久五月 | www亚洲成人 | 色屁屁在线观看 | 中文天堂在线一区 | 成人在线一级片 | 欧美中文在线 | 精品中文字幕在线观看 | 国产99热在线 | 午夜丁香视频在线观看 | 国产区一区二区三区 | 九九色综合| 亚洲高清在线 | 国产精品成人一区二区 | 国产精品国产三级国产aⅴ中文 | 国产精品久久a | 国产电影一区二区 | 成人在线视频免费看 | 免费观看的av毛片的网站 | 97在线超碰 | 免费av直接看 | 在线观看国产视频 | 可以看黄的视频 | 精品二区视频 | 97色在线视频 | av中文在线 | 午夜一区二区三区在线观看 | 中文字幕国产精品 | 男女午夜激情视频 | 国产免费一区二区三区最新6 | 日韩亚洲视频在线 |