oracle為什么這么慢
2024-08-29 13:41:48
供稿:網友
用Oracle8.05和sql server2000對照測試
分別在兩個系統里建立結構完全相同的兩個表
create table test
(dep_id number(7,0) not null,
del_name varchar2(100));
無主鍵,無約束先用以下語句插入一條記錄insert into test values(1,'一二三四五六七八九十')
然后重復使用insert into test select * from test
建立樣本數據當數據記錄條樹達到16384時計算select * from test所耗時間sql 2000用時 不到1秒
而oracle用時6分鐘!
oracle安裝按典型安裝,數據庫按缺省方式建立為什么會這么慢?
發信人: qhs (山山~快樂的梅花小豬), 信區: Database
The difference between SQL Server and Oracle is Oracle is designed for enterPRise environment and SQL Server is still based on small business.
If you have a master table with 30,000,000 records,
you will see the difference. Of course, performance
tunning is very import for both. But Oracle
proformance tuning is mUCh better than SQL server.
【 在 yacat (yacat) 的大作中提到: 】
: 用oracle8.05和sql server2000對照測試 分別在兩個系統里建立結構完全相同的兩個表
: create table test
: (dep_id number(7,0) not null,
: del_name varchar2(100));
: 無主鍵,無約束
: 先用以下語句插入一條記錄
: insert into test values(1,'一二三四五六七八九十')
: 然后重復使用insert into test select * from test
: 建立樣本數據
: 當數據記錄條樹達到16384時
: ...................
發信人: FairyBoy (善才童子), 信區: Database
我覺得這不大可能,我也用Oracle和SQL Server,不過,我是編程看的,SQLserver使用VC/ADO,Oracle用VC/OCI,在數據量小的時候,二者速度基本沒有差別,大數據量時SQL Server差遠了,例如我調用數據庫里的大量圖片!很可能是測試工具問題,還有,Oracle性能與設置有很大關系,例如回滾、表空間、日志等等,還有一個,Oracle裝在什么樣的OS里,個人認為,Win平臺下Oracle需要的資源例如內存要更多!這樣才能發揮它的效能
【 在 yacat (yacat) 的大作中提到: 】
: 用oracle8.05和sql server2000對照測試
: 分別在兩個系統里建立結構完全相同的兩個表
: create table test
: (dep_id number(7,0) not null,
: del_name varchar2(100));
: 無主鍵,無約束
: 先用以下語句插入一條記錄
: insert into test values(1,'一二三四五六七八九十')
: 然后重復使用insert into test select * from test
: 建立樣本數據
: 當數據記錄條樹達到16384時
: ...................
發信人: leejw (小威威), 信區: Database
我也一直認為oracle是企業級的,甚至是電信級的至少中國的電信行業用的基本上是oracle,我熟悉的許多人也把oracle吹捧上天
但是,客觀的說,我覺得sql server在windows平臺上面的表現非常的好,遠遠不是oracle所能比的;這個話題第一篇文章里面說的問題我覺得非常可能,因為我在實際應用的時候也碰見過。在倒入一個小批量數據的時候,sql server用了6秒鐘,而象db2、oracle這兩種所謂enterprise級別的db沒有小于1分鐘的!!!
(三個數據庫系統都沒有做優化!)
也許有人會說oracle、db2在大數據量下面才會顯示出性能優勢。我對這種說法沒有意見,因為我也認為應該是這樣,我熟悉的一些高手也是這樣認為地(和它們比,我只是菜鳥,呵呵);但是,一個好的數據庫系統,好的engine,難道不應該有快速處理小量數據的能力嗎?
有人會說oracle的performance tuning很好。
的確,oracle有很多可選的參數,但是oracle的tuning也是最復雜的,找一個精通tuning的dba恐怕也花費不少吧!從另一個角度來說,很多的tuning選項也就意味著更大的復雜性,更差的可治理性,這難道不是oracle的弱點嗎?oracle居然還不要臉的搞一個dba performance tuning pack,本來應該集成到數據庫里面的東西單獨拿出來賣!ibm db2性能一點也不比oracle差,它的tuning可比oracle要簡單的多了。而且有不少
oracle根本不具備(或者比較難實施)的提高性能的措施,例如dms
有人會說oracle需要在大內存下面才能體現出高性能,例如8G。算我見識少,還沒有玩過這么大內存的機器。但是要知道,真正的企業應用講究的是成本效益比,我真的需要
8G內存的機器來跑我的應用嗎?假如你的dbms是真的好,1G內存也能夠顯示出來吧?在小內存(例如512m)的場合為什么就慢呢?為什么sql server能夠跑得飛快,oracle就不行呢?內存小就跑不快,這恐怕不能成為理由吧!
再說一句題外話,類似于sun一類的公司老是說他們的機器性能如何的好,但是我親自做了一個小試驗:在我的pIII 600+256m+ide 20gb hd的組裝機器上面使用java
生成一個符合某種規則的龐大(5g)的數據文件,在一臺sun e450+2gb ram+scsi 130gb hd的服務器上面運行同樣的程序,結果pIII的速度至少是e450的4倍!我當時非凡的驚奇
的確,高端的應用需要高可用性、高安全性(unix based or main frame),這些可能未必是intel架構的系統或者是sql server這一類small business的數據庫服務器所能夠提供的,但是,我們對某些廠家的宣傳也不能過于迷信。尤其是企業it部門的負責人,應該好好想想自己的企業需要什么樣的應用,對性能的要求如何,怎么樣平衡性能、開發速度、可維護性(維護成本)等等因素之間的關系,衡量清楚之后再作決策,切不可偏聽偏信。
寫這一篇文章絕對沒有偏袒那一個廠家的動機,我是db2 的dba,sql server的dba,oracle的太貴,又不能帶來短期的效益,所以沒有考。
oracle, db2, sqlserver做到這個程度都是很優秀的系統,它們之間各有所長,暫時還看不出誰能夠代替誰的趨勢;但是,作為一個企業級應用來說,需要考慮的不僅僅是性能,更重要的是tco,在這個意義上講,sql server有著非常明顯的優勢;
而db2在高端領域,正在和oracle展開對攻,而且勝算頗大;最令人擔憂的是oracle搞不好就會落一個眾叛親離的下場。
說多了,呵呵,趕緊復習去。
【 在 qhs (山山~快樂的梅花小豬) 的大作中提到: 】
The difference between SQL Server and Oracle is Oracle is designed for enterprise environment and SQL Server is still based on small business. If you have a master table with 30,000,000 records, you will see the difference. Of course, performance tunning is very import for both. But Oracle
proformance tuning is much better than SQL server.
發信人: qxue (勤學·漸行漸遠), 信區: Database
做一個比喻,可能不是太恰當:
同時用一個高檔傻瓜和一個專業SLR拍片子假如是一般水平的業余愛好者,基本上是傻瓜機拍出來的質量好
至少也是和使用AF程序暴光的SLR拍出來差不多因為用SLR手動測光、調焦、設定光圈大小、快門速度、猜測景深、構圖等等過程,以及對光線、膠片的把握程度,不是一日之功
但專業攝影師就可以用SLR得到全自動傻瓜不能得到的效果上萬塊的機身加上萬塊的鏡頭,不調整直接按快門,拍出來的絕對是廢片我們當然可以指責這么貴的東西為什么還不如一臺普通傻瓜效果好但是很遺憾,確實不行,因為它不是這么用的NIKON絕對不想為了普通用戶而把F5變成傻瓜機,因為它知道使用這臺機器的
絕大多數是專業或準專業人士BTW,最近在學習攝影,所以借來用一下,呵呵
【 在 leejw (小威威) 的大作中提到: 】
: 我也一直認為oracle是企業級的,甚至是電信級的 至少中國的電信行業用的基本上是oracle,我熟悉的許多人也把oracle吹捧上天
但是,客觀的說,我覺得sql server在windows平臺上面的表現非常的好,遠遠不是oracle所能比的;這個話題第一篇文章里面說的問題我覺得非常可能,因為我在實際應用的時候也碰見過。在倒入一個小批量數據的時候,sql server用了6秒鐘,而象db2、oracle這兩種所謂enterprise級別的db沒有小于1分鐘的!!!(三個數據庫系統都沒有做優化!) 也許有人會說oracle、db2在大數據量下面才會顯示出性能優勢。我對這種說法沒有意見 ,因為我也認為應該是這樣,我熟悉的一些高手也是這樣認為地(和它們比,我只是菜鳥,呵呵);但是,一個好的數據庫系統,好的engine,難道不應該有快速處理小量數據的能力嗎?
發信人: wolfop (真恨無敵), 信區: Database
果斷不同意,導入的速度快慢,誰能和MySQL比速度?
我導入2M條記錄到mysql用203s,到oracle用70min,所以mysql 比oracle好?
db2的數據導入有load和import兩種方式,你用的那種?
企業應用要害還在穩定性上,跑在win32平臺的穩定,呵呵。
反正我們的IOD的穩定性不能恭維,就是WIN+ MS SQL SERVER的。
同樣用PC的跑Sco+informix都比這個東西穩定。
當然說到Oracle的速度,到大型的東西也沒有什么優勢,往往TPC的測試都落在DB2和Informix后面,不過Oracle的穩定是還不錯,可擴展性也還很好。企業數據庫不是鬧著完的,一天在上面