線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2145
推到 Plurk!
推到 Facebook!

為何access及dbase資料量一大效率就差而SQL資料庫不會?

答題得分者是:danny
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-11-24 17:33:02 IP:220.131.xxx.xxx 訂閱
1. 為何access及dbase資料量一大效率就差而SQL資料庫(如MS SQL,ORACLE,INTERBASE)不會?SQL資料庫是如何做到?
2. FOXPRO資料量一大效率會不會變差呢?
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-11-24 21:34:14 IP:124.10.xxx.xxx 訂閱
很簡單!
要花錢的如果不好,誰會買?
不花錢的如果很好,誰想花錢?

資料庫引擎差別很大的
SQL 資料庫用了很多記憶體空間作為 cache 使用,預設值是有多少記憶體最多就吃多少,而且不會釋放
光這一點就不是檔案型資料庫能比的了
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
編輯記錄
sryang 重新編輯於 2007-11-24 21:40:08, 註解 無‧
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-11-24 22:26:14 IP:218.170.xxx.xxx 未訂閱
如果你有去研究過 B-Tree 就會知道,它的一個 NODE 的 size 可以容納幾個 index ,
而一個 NODE 的 size 跟一次硬碟讀取的 block size 是否相同,就可以有很大的影響效率了。
畢竟,硬碟的讀取是一種電磁式的動作。跟都在記憶體的電子式有很大的效率差別。
而硬碟的一次讀取量,如果跟你的 NODE 的 block 不一樣大。
就會造成你的讀取,不是太小,要多次讀取。就是太大,造成浪費。
效率上就有打很多折。

至於 SQL 會比較快,大多的原因在大量利用記憶體。
當然,SQL 也有變慢的時候。
比方說你下了不當的 ORDER 指令。
它在每次的 Query 之後,必須要做到大量的排序。這就會奱慢了。
這些都要你實際跑過之後,你才會發現的問題。
不是三兩句就可以說清的。

要了解怎樣加快速度。
從根本去了解電腦。了解速率決定步驟,你就可以把你手上的東西發揮到極致。
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-11-24 23:24:08 IP:61.67.xxx.xxx 未訂閱
根據ry_lee這些日子的提問, 個人猜想您是剛接觸資料庫這一塊吧? 建議你多利用搜尋本站, 關鍵字 資料庫 及資料庫差異及google, yahoo的全球網, 有關這些討論其實早一陣子有很多前輩都回答過了, 也有很精擘的解析
danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-11-24 23:59:20 IP:211.76.xxx.xxx 訂閱
>2. FOXPRO資料量一大效率會不會變差呢?

當然會!
FOXPRO 與 DBASE, Access 這些都是檔案形的資料庫都屬於同一類
不過SQL也會資料量一大效率就會變差, 只是不會那麼明顯.
------
將問題盡快結案也是一種禮貌!
系統時間:2024-05-05 5:05:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!