oraclesql與或非
Ⅰ oracle中sql語句「非(A='1'或B='2')」執行語句的時候A!=1,B為空的數據取不出來怎麼解決
資料庫中用=或者<>時是忽略空值的,空值只能通過B is null 或者B is not null設置條件
Ⅱ oracle語句查詢 or和and
and優先順序大於or。
加括弧則優先執行or,後執行and;不加括弧,會先執行and,再執行or,所以查詢結果不同。舉例:
資料庫存在數據:
Thomas Carter
WilliamCarter
ThomasKing
執行:SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')
AND LastName='Carter'
結果為:
ThomasCarter
WilliamCarter
執行:SELECT * FROM Persons WHERE FirstName='Thomas' OR FirstName='William'
AND LastName='Carter'
結果為:
ThomasCarter
WilliamCarter
ThomasKing
(2)oraclesql與或非擴展閱讀:
ORACLE資料庫特點:
1、完整的數據管理功能:
(1)數據的大量性
(2)數據的保存的持久性
(3)數據的共享性
(4)數據的可靠性
2、完備關系的產品:
(1)信息准則---關系型DBMS的所有信息都應在邏輯上用一種方法,即表中的值顯式地表示;
(2)保證訪問的准則
(3)視圖更新准則---只要形成視圖的表中的數據變化了,相應的視圖中的數據同時變化
(4)數據物理性和邏輯性獨立准則
3、分布式處理功能:ORACLE資料庫自第5版起就提供了分布式處理能力,到第7版就有比較完善的分布式資料庫功能了,一個ORACLE分布式資料庫由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關系型產品構成。
4、用ORACLE能輕松的實現數據倉庫的操作。
參考資料:網路-Oracle資料庫
Ⅲ SQLServer和Oracle資料庫分析(oraclesql性能分析)
分析原則:
1、具體問題具體分析(這是由於不同的應用系統,不同的測試目的,不同的性能關注點)
2、查找瓶頸時按以下順序,由易到難。
伺服器硬體瓶頸-〉網路瓶頸(對區域網,可以不考慮)-〉伺服器操作系統瓶頸(參數配置)-〉中間件瓶頸(參數配置,資料庫,web伺服器等)-〉應用瓶頸(SQL語句、資料庫設計、業務邏輯、演算法等)註:以上過程並不是每個分析中都需要的,要根據測試目的和要求來確定分析的深度。對一些要求低的,我們分析到應用系統在將來大的負載壓力(並發用戶數、數據量)下,系統的硬體瓶頸在哪兒就夠了。分段排除法很有效。
分析的信息來源:1、根據場景運行過程中的錯誤提示信息;
2、根據測試結果收集到的監控指標數據。
一、錯誤提示分析
分析實例:
1、Error:「10.10.10.30:8080〃:[10060]Connection
Error::Server「10.10.10.30〃
分析:
A、應用服務死掉(小用戶時:程序上的問題。程序上處理資料庫的問題)
B、應用服務沒有死(應用服務參數設置問題)
例:在許多客戶端連接Weblogic應用伺服器被拒絕,而在伺服器端沒有錯誤顯示,則有可能是Weblogic中的server元素的AeptBacklog屬性值設得過低。如果連接時收到消息,說明應提高該值,每次增加25%
C、資料庫的連接(1、在應用服務的性能參數可能太小了;2、資料庫啟動的最大連接數(跟硬體的內存有關)。)
分析:可能是以下原因造成
A、譽叢應用服務參慶掘櫻數設置太大導致伺服器的瓶頸;B、頁面中圖片太多;C、在程序處理表的時候檢查欄位太大多。
二.監控指標數據分析
1、最大並發用戶數:
應用系統在當前環境(硬體環境、網路環境、軟體環境(參數配置))下能承受的最大並發用戶數。在方案運行中,如果出現了大於3個用戶的業務操作失敗,或出現了伺服器shutdown的情況,則說明在當前環境下,系統承受不了當前並發用戶的負載壓力,那麼最大並發用戶數就是前一個沒有出現這種現象的並發用戶數。如果測得的最大並發用戶數到達了性能要求,且各伺服器資源情況良好,業務操作響應時間也達到了用戶要求,那麼可行。否則,再根據各伺服器的資源情況和業務操作響應時間進一步分析原因所在。
2、業務操作響應時間:
分析方案運行情況應從平均事務響應時間圖和事務性能摘要圖開始。使用「事務性能摘要」圖,可以確定在方案執行期間響應時間過長的事務。細分事務並分析每個頁面組件的性能。如果伺服器耗時過長,請使用相應的伺服器圖確定有問題的伺服器度量並查明伺服器性能下降的原因。如果網路耗時過長,請使用「網路監視器」圖確定導致性能瓶頸的網路問題
3、伺服器資源監控指標:內存:
1、UNIX資源監控中指標內存頁交換速率(Pagingrate),如散衡果該值偶爾走高,表明當時有線程競爭內存。如果持續很高,則內存可能是瓶頸。也可能是內存訪問命中率低。
2、Windows資源監控中,如果Process計數器和ProcessWorkingSet計數器的值在長時間內持續升高,同時Memory計數器的值持續降低,則很可能存在內存泄漏。
內存資源成為系統性能的瓶頸的徵兆:很高的換頁率();進程進入不活動狀態;交換區所有磁碟的活動次數可高;可高的全局系統CPU利用率;內存不夠出錯()。
處理器:
1、UNIX資源監控(Windows操作系統同理)中指標CPU佔用率(),如果該值持續超過95%,表明瓶頸是CPU。可以考慮增加一個處理器或換一個更快的處理器。如果伺服器專用於SQLServer,可接受的最大上限是80-85%合理使用的范圍在60%至70%。
2、Windows資源監控中,如果System大於2,而處理器利用率()一直很低,則存在著處理器阻塞。
CPU資源成為系統性能的瓶頸的徵兆:很慢的響應時間();CPU空閑時間為零();過高的用戶佔用CPU時間();過高的系統佔用CPU時間();長時間的有很長的運行進程隊列()。
磁碟I/O:
1、UNIX資源監控(Windows操作系統同理)中指標磁碟交換率(Diskrate),如果該參數值一直很高,表明I/O有問題。可考慮更換更快的硬碟系統。
2、Windows資源監控中,如果DiskTime和Avg.DiskQueueLength的值很高,而PageReads/sec頁面讀取操作速率很低,則可能存在磁碟瓶徑。
I/O資源成為系統性能的瓶頸的徵兆:過高的磁碟利用率(highdiskutilization);
太長的磁碟等待隊列(largediskqueuelength);
等待磁碟I/O的時間所佔的百分率太高(/O);
太高的物理I/O速率:largephysicalI/Orate(notsufficientinitself);
過低的緩存命中率(lowbuffercachehitratio(notsufficientinitself));
太長的運行進程隊列,但CPU卻空閑(largerunqueuewithidleCPU)。
4、資料庫伺服器:
SQLServer資料庫:
1、SQLServer資源監控中指標緩存點擊率(CacheHitRatio),該值越高越好。如果持續低於80%,應考慮增加內存。
2、如果FullScans/sec(全表掃描/秒)計數器顯示的值比1或2高,則應分析你的查詢以確定是否確實需要全表掃描,以及SQL查詢是否可以被優化。
3、NumberofDeadlocks/sec(死鎖的數量/秒):死鎖對應用程序的可伸縮性非常有害,並且會導致惡劣的用戶體驗。該計數器的值必須為0。
4、LockRequests/sec(鎖請求/秒),通過優化查詢來減少讀取次數,可以減少該計數器的值。
Oracle資料庫:
1、如果自由內存接近於0而且庫快存或數據字典快存的命中率小於0.90,那麼需要增加SHARED_POOL_SIZE的大小。
快存(共享SQL區)和數據字典快存的命中率:select(sum(pins-reloads))/sum(pins)fromv$librarycache;
select(sum(gets-getmisses))/sum(gets)fromv$rowcache;
自由內存:select*fromv$sgastatwherename=『freememory』。
2、如果數據的緩存命中率小於0.90,那麼需要加大DB_BLOCK_BUFFERS參數的值(單位:塊)。
緩沖區高速緩存命中率:selectname,valuefromv$sysstatwherenamein(『dbblockgets』,『consistentgets』『physicalreads』)HitRatio=1-(physicalreads/(dbblockgetsconsistentgets))。
3、如果日誌緩沖區申請的值較大,則應加大LOG_BUFFER參數的值。
日誌緩沖區的申請情況:selectname,valuefromv$sysstatwherename=『redologspacerequests』。
4、如果內存排序命中率小於0.95,則應加大SORT_AREA_SIZE以避免磁碟排序。
內存排序命中率:selectround((100*b.value)/decode((a.valueb.value),0,1,(a.valueb.value)),2)fromv$sysstata,v$sysstatbwherea.name=』sorts(disk)』andb.name=』sorts(memory)』
註:上述SQLServer和Oracle資料庫分析,只是一些簡單、基本的分析,特別是Oracle資料庫的分析和優化,是一門專門的技術,進一步的分析可查相關資料。
Ⅳ sqlserver資料庫與oracle資料庫有什麼區別
著信息技術的飛速發展,數據處理不僅在數量上要求越來越大,而且在質量上也要求越來越高。Oracle資料庫在大多數企業中受到廣泛使用,而茄碧SQL Server資料庫也因為和Windows的聯系,在企業中的使用也是非常廣泛。 x0dx0ax0dx0a操作系統的穩定對資料庫來說是十分緊要的,在資料庫可操作平台上,Oracle可在所有主流平台上運行,Oracle資料庫採用開放的策略目標,它使得客戶可以選擇一種最適合他們特定需要的解決方案。客戶可以利用很多種第三方應用程序、工具。對開發商來說是很大的支持。而SQL Server卻只能在Windows上運行了,這個就顯得比較單調了,但SQL Sever在Window平台上的表現,和Windows操作系統的整體結合程度,使用方便性,和Microsoft開發平台的整合性都比Oracle強的很多。但Windows操作系統的穩定性及可靠性大家是有目共睹的,再說Microsoft公司的策略目標是將客戶都鎖定到Windows平台的環境當中,只有隨著Windows性能的改善,SQL Server才能進一步提高。從操作平台這點上Oracle是完全優勝於SQL Server的了。 x0dx0ax0dx0a從資料上可以看到,Oracle的安全認證獲得最高認證級別的ISO標准認證,而SQL Server並沒有獲得什麼安全認證。這方面證明了Oracle的安全性是高於SQL Server的。 x0dx0ax0dx0a購買一個產品,首先考慮的當然是產品的性能了,當考慮性能的同時當然少不了究竟要花多少錢在這產品也是個很關鍵的問題。要建立並運行一個資料庫系統。不僅僅鏈納判包含最初購置軟體、硬體的費用,還包含了培訓及以後維護的費用。Orcale資料庫的價格是遠比SQL Server資料庫要高,為什麼Oracle資料庫比SQL Server資料庫價格上要高出那麼多,一方面Oracle的初始棚改花費相對較高,特別是在考慮工具軟體的時候,Oracle很多工具軟體需要另外購買,與Microsoft提供免費的SQL Server工具軟體相比,Oracle更顯價格的不菲。但由於SQL Server只能在Windows下運行的原因,普遍認為SQL Server資料庫的可靠性是比較差的。Oracle的性能優勢體現在他的多用戶上,而SQL Server的性能優勢在多用戶上就顯得力不從心了。 x0dx0ax0dx0a操作上SQL Server明顯要比Orcale簡單,如果你用過Java和DOTNET的開發平台,區別的基本就是Oracle和SQL Server不同,Oracle的界面基本是基於Java的,大部分的工具是Dos界面的,甚至SQLPlus也是, SQL Server是跟VB一樣,全圖形界面,很少見到DOS窗口。SQL Server中的企業管理器給用戶提供一個全圖形界面的集成管理控制台來集中管理多個伺服器。Oracle也有自己的企業管理器,而且它的性能在某些方面甚至超過了SQL Server的企業管理器,但它安裝較為困難。 x0dx0ax0dx0aOrcale資料庫和SQL Server資料庫那個更快?其實是一個很難答的問題,因為存在許多不定因素,包括處理類型、數據分布以及硬體基礎設施等。 x0dx0ax0dx0aSQL Server 2000是一個具備完全Web支持的資料庫產品,提供了可擴展標記語言核心支持以及Internet上和防火牆外進行查詢的能力,具有可伸縮性、靈活性、擴充性好,而且價格便宜等特點,而Oracle則有著可靠安全性,速度比SQL Server快上百倍,但其價格在實施中卻比SQL Server它高出了幾百倍。 x0dx0ax0dx0a其實各行業考慮選擇那種資料庫,是由資料庫的特點以及根據自己的業務需求和基礎設施綜合考慮來決定的。 x0dx0ax0dx0aoracle中有復合數據類型 sql server中沒有 x0dx0a聲明方式:變數名 對象名%type x0dx0a這里的變數類型可以是所有以存在的數據類型,具有依賴性 ,存儲過程中用這種變數比較靈活,但效率應該會低些 x0dx0ax0dx0aoracle存儲過程中藉助cursor類型變數返回並訪問記錄集 sql server中我沒用過類似功能 x0dx0ax0dx0aoracle里這么用:存儲過程中邊查詢邊給變數賦值 x0dx0aselect 某一列名 into 變數名 from table where ..; x0dx0a相當於oracle中的select 變數名=列....