oracle查詢條數(shù)控制 如何統(tǒng)計SQL語句查詢出來的條數(shù)?
如何統(tǒng)計SQL語句查詢出來的條數(shù)?- SYSDBA是模式名,SLI _測試是表名,找到的單位是kSELECT表已用空間(SYSDBA,SLI測試)*(第1024頁)來自DUAL-也可以使用下面的語句,
如何統(tǒng)計SQL語句查詢出來的條數(shù)?
- SYSDBA是模式名,SLI _測試是表名,找到的單位是k
SELECT表已用空間(SYSDBA,SLI測試)*(第1024頁)來自DUAL
-也可以使用下面的語句,類似于oracle的用法。
select segment_name,sum(bytes/1024)from user _ segments where segment _ names Li _ TEST
oracle數(shù)據(jù)庫應(yīng)用結(jié)構(gòu)包括?
Oracle數(shù)據(jù)庫的體系結(jié)構(gòu)包括四個方面:數(shù)據(jù)庫的物理結(jié)構(gòu)、邏輯結(jié)構(gòu)、內(nèi)存結(jié)構(gòu)和進程。
1.物理結(jié)構(gòu)
物理數(shù)據(jù)庫結(jié)構(gòu)由組成數(shù)據(jù)庫的操作系統(tǒng)文件決定。Oracle數(shù)據(jù)庫文件包括:
數(shù)據(jù)文件(數(shù)據(jù)文件)
數(shù)據(jù)文件用于存儲數(shù)據(jù)庫中的所有數(shù)據(jù),例如數(shù)據(jù)庫表中的數(shù)據(jù)和索引數(shù)據(jù)。他們通常在*。dbf格式,比如:userCIMS.dbf。
日志文件(重做日志文件)
日志文件用于記錄數(shù)據(jù)庫所做的所有更改(如添加、刪除和修改),以便在系統(tǒng)出現(xiàn)故障時用于恢復(fù)數(shù)據(jù)庫。該名稱通常在Log*中。dbf格式,如log 1 IMS . DBF、log 2 IMS . DBF
控制文件(控制文件)
每個Oracle數(shù)據(jù)庫都有相應(yīng)的控制文件,這些文件是小型的二進制文件,用于記錄數(shù)據(jù)庫的物理結(jié)構(gòu),如數(shù)據(jù)庫名稱、數(shù)據(jù)庫的數(shù)據(jù)文件和日志文件的名稱和位置。用于打開和訪問數(shù)據(jù)庫。名字通常是Ctrl*ctl。格式,如Ctrl1CIMS.ctl。
配置文件
配置文件記錄了Oracle數(shù)據(jù)庫的一些重要參數(shù),如數(shù)據(jù)塊的大小、內(nèi)存結(jié)構(gòu)的配置等。該名稱通常在init*中。ora格式,比如initCIMS.ora。
2邏輯結(jié)構(gòu)
Oracle數(shù)據(jù)庫的邏輯結(jié)構(gòu)描述了數(shù)據(jù)庫如何以邏輯存儲數(shù)據(jù)庫中的數(shù)據(jù)。邏輯結(jié)構(gòu)包括表空間、段、范圍、數(shù)據(jù)塊和模式對象。數(shù)據(jù)庫的邏輯結(jié)構(gòu)將決定數(shù)據(jù)庫如何使用系統(tǒng)的物理空間。模式對象及其關(guān)系是描述了關(guān)系數(shù)據(jù)庫之間的設(shè)計。
從邏輯上講,數(shù)據(jù)庫由一個或多個表空間組成,表空間是數(shù)據(jù)庫中物理分組的數(shù)據(jù)倉庫。每個表空間都由段組成,其中一個由一組盤區(qū)組成,另一個由一組連續(xù)的數(shù)據(jù)庫塊(da數(shù)據(jù)庫塊),而數(shù)據(jù)庫塊對應(yīng)于硬盤上的一個或多個物理塊。表空間保存一個或多個數(shù)據(jù)庫的物理文件(即數(shù)據(jù)文件)。數(shù)據(jù)庫中的數(shù)據(jù)邏輯上存儲在表空間中。
Tablespaces (Tablespaces)
Oracle數(shù)據(jù)庫分為一個或多個邏輯結(jié)構(gòu),稱為表空間,包括兩種類型的表空間,系統(tǒng)表空間和非系統(tǒng)表空間。其中,系統(tǒng)表空間是在數(shù)據(jù)庫安裝時自動建立的,它包含了數(shù)據(jù)庫的所有數(shù)據(jù)字典和存儲。過程、包、函數(shù)和觸發(fā)器以及系統(tǒng)回滾段的定義。此外,它還可以包含用戶數(shù)據(jù)。。
一個表空間包含許多段,每個段由一些不連續(xù)的區(qū)域組成,每個區(qū)域由一組連續(xù)的數(shù)據(jù)塊組成,這些數(shù)據(jù)塊是數(shù)據(jù)庫操作的最小單位。
每個表空間對應(yīng)一個或多個數(shù)據(jù)文件,每個數(shù)據(jù)文件只能屬于一個表空間。
Database block (database block)
數(shù)據(jù)庫塊也稱為邏輯塊或ORACLE塊,對應(yīng)于磁盤上的一個或多個物理塊,其大小由初始化參數(shù)db-block-size(在文件init.ora中)決定,通常大小為2k。Pckfree和pctused參數(shù)用于優(yōu)化數(shù)據(jù)塊空間的使用。
Area (range)
區(qū)域是數(shù)據(jù)庫存儲空間分配的邏輯單位,由一組連續(xù)的數(shù)據(jù)塊組成。
Segment (subsection)
段是一個或多個不連續(xù)區(qū)域的集合,包括表空間定邏輯結(jié)構(gòu)的所有數(shù)據(jù),并且該段不能跨表空間存儲。Oracle數(shù)據(jù)庫包括數(shù)據(jù)段、索引段、臨時段、回退段等。
Schema object (schema object)
Oracle數(shù)據(jù)庫的模式對象包括表、視圖、序列、同意、索引、觸發(fā)器、存儲過程等。它們將在下面的章節(jié)中介紹。
服務(wù)器系統(tǒng)進程和內(nèi)存結(jié)構(gòu)
當(dāng)Oracle數(shù)據(jù)庫在計算機服務(wù)器上啟動時,我們稱之為在服務(wù)器上啟動了一個Oracle實例。ORACLE實例是一種訪問和控制數(shù)據(jù)庫的軟件機制,包括系統(tǒng)全局區(qū)(SGA)和oRACLE過程分為兩部分。SGA是系統(tǒng)為實例分配的一組共享內(nèi)存緩沖區(qū),用于存儲數(shù)據(jù)庫實例和控制信息,以便管理和操作數(shù)據(jù)庫中的數(shù)據(jù)。
進程是操作系統(tǒng)中一個極其重要的概念。進程執(zhí)行一組操作并完成特定的任務(wù)。對于ORACLE數(shù)據(jù)庫管理系統(tǒng),進程由用戶進程、服務(wù)器進程和后臺進程組成。
當(dāng)用戶運行一個應(yīng)用程序時,系統(tǒng)為它創(chuàng)建一個用戶進程。服務(wù)器進程處理連接的用戶進程的請求,并且它與用戶進程通信以服務(wù)于連接的用戶進程的ORACLE請求。
為了提高系統(tǒng)性能,更好地實現(xiàn)多用戶功能,ORACLE還在系統(tǒng)后臺啟動一些后臺進程,進行數(shù)據(jù)庫數(shù)據(jù)操作。
系統(tǒng)進程的后臺進程主要包括:
SMON系統(tǒng)監(jiān)視進程:(系統(tǒng)監(jiān)視器)負(fù)責(zé)排序,完成自動實例恢復(fù)和排序表空間。
PMON進程監(jiān)控進程:(process monitor)實現(xiàn)用戶進程故障恢復(fù),清空內(nèi)存區(qū)域,釋放進程所需的資源。
DBWR數(shù)據(jù)庫寫進程:數(shù)據(jù)庫緩沖區(qū)的治理進程。
在其治理下,數(shù)據(jù)庫緩沖區(qū)中總是有一定數(shù)量的空閑緩沖塊,以保證用戶進程總能找到空閑緩沖塊供其使用。
LGWR日志文件寫進程:它是日志緩沖區(qū)的治理進程,負(fù)責(zé)將日志緩沖區(qū)中的日志項寫到磁盤上的日志文件中。每個實例只有一個LGWR進程。
ARCH歸檔進程:(歸檔進程)將填充的在線日志文件復(fù)制到指定的存儲設(shè)備。只有當(dāng)日志文件組開關(guān)出現(xiàn)時,才進行ARCH操作。拱不是必要的,但只有當(dāng)只有在請求手動存檔時,才能使用或發(fā)布動態(tài)存檔。
RECO recovery process:是有分布式選項時使用的流程,主要用于解決引用分布式事務(wù)時的故障。它只能出現(xiàn)在允許分布式事務(wù)的系統(tǒng)中。
LCKn阻塞進程:用于并行服務(wù)器系統(tǒng),主要是在實例之間進行阻塞。
記憶結(jié)構(gòu)(SGA)
SGA是Oracle為實例分配的一組共享內(nèi)存緩沖區(qū),包含實例的數(shù)據(jù)和控制信息。SGA在實例啟動時自動分配,在實例關(guān)閉時收回。數(shù)據(jù)庫的所有數(shù)據(jù)操作都必須通過SGA進行。
根據(jù)存儲信息的不同,SGA中的內(nèi)存可以分為以下幾個區(qū)域:緩沖區(qū)緩存:在數(shù)據(jù)庫中存儲數(shù)據(jù)庫塊的副本。它由一組緩沖塊組成,由鏈接到實例的所有用戶進程共享。緩沖塊的數(shù)量由初始化。參數(shù)DB_BLOCK_BUFFERS確定,緩沖塊的大小由初始化參數(shù)DB_BLOCK_SIZE確定。大數(shù)據(jù)塊可以提高查詢速度。它由DBWR運營。
B.重做日志緩沖區(qū):用于存儲數(shù)據(jù)操作的變化信息。它們以重做條目的形式存儲在日志緩沖區(qū)中。當(dāng)需要數(shù)據(jù)庫恢復(fù)時,日志條目用于重建或回滾對數(shù)據(jù)庫所做的更改。太陽日志緩沖區(qū)的大小由初始化參數(shù)LOG_BUFFER決定。較大的日志緩沖區(qū)可以減少日志文件I/O的數(shù)量。后臺進程LGWR將日志緩沖區(qū)中的信息寫入磁盤上的日志文件,并可以啟動ARCH后臺進程來歸檔日志信息。
C.共享池:包含用于處理的SQL語句信息。它包含一個共享SQL區(qū)域和一個數(shù)據(jù)字典存儲區(qū)域。共享SQL區(qū)域包含用于執(zhí)行特定SQL語句的信息。數(shù)據(jù)字典區(qū)用于存儲數(shù)據(jù)字典,它由所有用戶進程共享。。