Oracle與SQL Server等數據庫的區別


Oracle與SQL Server等數據庫的區別

在Oracle中提倡使用一個連接

Oracle處理多個並發語句使用一個連接,大大提升系統能支持的並發量

Oracle運行在32為單進程平台上SGA和PGA最多只能使用2GB內存,多進程平台上SGA最多使用2GB內存,每個PGA也能使用2GB內存,這是Oracle使用Windows平台時需要運行在Data Center版本的Windows系統上的原因

使用綁定變量而不是字面量

Oracle使用綁定變量有兩個好處

實現sql的軟解析

相比與硬解析,解析結果更能得到重用,如果硬解析太多的話,共享池會清理掉一些其他的解析結果導致下次運行是重新解析。執行的解析越多,對共享池的閂競爭就越厲害,等待的隊列越長,時間越久。

能防止sql注入

如果使用綁定變量,就不會遭遇SQL注入攻擊

鎖機制

Oracle只在修改時才對數據加行級鎖

如果只是讀數據,Oracle絕對不會加鎖

Oracle寫操作不會阻塞讀操作

Oracle需要修改已鎖定的數據時會被阻塞

防止更新丟失

Oracle可以使用讀鎖for update鎖定資源實現串行化

for update不會阻塞讀操作

多版本控制

Oracle使用多版本、讀一致實現並發模型

讀一致查詢:對於一個給定的時間點(as of從句后面可以使用系統提交號SCN或者時間點,讀undo日志數據或者歸檔日志實現),查詢會產生一致的結果

非阻塞查詢:查詢的會話不會被寫入會話阻塞

根據多版本讀一致特性可以預知insert into t select * from t插入的數據集

Oracle數據庫不會對列完全為null的數據創建索引

Select * from t where (x = l_v or (x is null and l_v is null))不會用到索引

可以創建函數索引將null值轉化為沒有意義的其他值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM