Time of Update: 2018-12-03
準確來說一個禮拜是從星期日開始到星期六結束的,而我們自己的習慣都是按一個禮拜的第一天為星期一,最後一天為星期日來的。很多的查詢條件和統計都需要求得一周的時間段,也就是星期一到星期日的時間段, 我們用to_char和next_day兩個函數分別可以求得第一天和最後一天的日期。1、TO_CHAR 結合 DECODE、TO_NUMBER 函數求得/** 使用TO_CHAR(SYSDATE,'D')可以求得當前日期是一周的第幾天 得到的結果是星期日開始作為第1天的,
Time of Update: 2018-12-03
--a list of datafilesSELECT * FROM V$DATAFILE;--a listing of datafiles along with their associated tablespaces:SELECT t.NAME "Tablespace", f.NAME "Datafile" FROM V$TABLESPACE t, V$DATAFILE f WHERE t.TS# = f.TS# ORDER BY t.NAME;select * from
Time of Update: 2018-12-03
服務啟動的是後台進程,這類似 於Unix中的守護進程。當Oracle資料庫服務啟動時,系統中沒有典型的Oracle進程運行。相反,該服務進程等待來自SQL*Plus的最初連 接,這引起一個前台進程啟動並建立該系統全域地區SGA的後台進程。當Oracle資料庫關閉時,所有建立的進程被終止。但是該進程自身仍在繼續運行,等 待下一個串連請求和啟動命令。這就是當我們通過Windows中的Oracle Service啟動了資料庫實 例,但在SQL*Plus或Oracle企業管理器中關閉了資料庫執行個體後,
Time of Update: 2018-12-03
CERT_1以前是varchar(3000),現在的類型是blob類型,做資料庫遷移時,使用匯入工具不能直接匯入,所以使用SQL,下面是SQL declare directions BLOB; amount BINARY_INTEGER; offset INTEGER; first_direction VARCHAR2(3000); more_directions VARCHAR2(3000); CURSOR c_TB1 Is (
Time of Update: 2018-12-03
合理的為資料庫表上建立戰略性索引,可以極大程度的提高了查詢效能。但事實上日常中我們所建立的索引並非戰略性索引,恰恰是大量冗餘或是根本沒有用到的索引耗用了大量的儲存空間,導致DML效能低下。Oracle 提供了索引監控特性來初略判斷未使用到的索引。本文描述如何使用Oracle 索引的監控。 1、冗餘索引的弊端 大量冗餘和無用的索引導致整個資料庫效能低下,耗用了大量的CPU與I/O開銷,具體表現如下: a、耗用大量的儲存空間(索引段的維護與管理)
Time of Update: 2018-12-03
和ROWNUM一樣,ROWID是一個偽列,即是一個非使用者定義的列,而又實際儲存於資料庫之中。每一個表都有一個ROWID列,一個ROWID值用於唯一確定資料庫表中的的一條記錄。因此通過ROWID 方式來訪問資料也是 Oracle 資料庫訪問資料的實現方式之一。一般情況下,ROWID方式的訪問一定以索引訪問或使用者指定ROWID作為先決條件,因為所有的索引訪問方式最終都會轉換為通過ROWID來訪問資料記錄。(註:index full scan 與index fast full
Time of Update: 2018-12-03
Oracle提供的等待事件檢視使得我們可以擷取指定session以及執行個體層級等待事件的詳細資料,這些視圖分別是v$session_wait,v$session_event,以及v$system_event。然而這幾個視圖對於曆史等待事件無能為力。對此,Oracle也提供了曆史等待事件檢視v$session_wait_history,同時視圖v$session_wait_class,v$system_wait_class也提供了基於等待類別的效能分析,下面是基於Oracle
Time of Update: 2018-12-03
Oracle
Time of Update: 2018-12-03
通常在當前控制檔案丟失,或者當前的控制檔案與需要恢複的控制檔案不一致的情況下,我們需要重新建立一個控制檔案或者使用 unsingbackup controlfile方式來恢複控制檔案。說簡單點,只要是備份的控制檔案與當前的控制檔案不一致進行恢複資料庫,就需要使用到 unsingbackup controlfile方式,而一旦使用了該方式,則需使用resetlgos選項來開啟資料庫。 有關控制檔案的介紹請參考: Oracle 控制檔案(CONTROLFILE)
Time of Update: 2018-12-03
大家都知道,用PL/SQL串連Oracle,是需要安裝Oracle用戶端軟體的。有沒要想過不安裝Oracle用戶端直接連接Oracle呢?只需要在Oracle下載一個叫Instant Client Package的軟體就可以了,這個軟體不需要安裝,只要解壓就可以用了,很方便,就算重裝了系統還是可以用的。 :http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html
Time of Update: 2018-12-03
Oracle RAC伺服器端的負載平衡是根據RAC中各節點的串連負荷數情況,將新的串連請求分配到負荷最小的節點上去。當資料庫處於運行時,RAC中各節點的PMON進程每3秒會將各自節點的串連負荷數更新到service_register。而對於節點中任意監聽器故障或監聽器意外失敗時,PMON進程會每1秒鐘檢查當前節點上的監聽是否重啟,以獲得最新的負載資訊來及時調整負載平衡。本文主要示範suse 10 + oracle 10g
Time of Update: 2018-12-03
Oracle RAC 負載平衡使得從用戶端發起的串連能夠有效地分配到監聽器負載較小的執行個體上。有兩種方式實現用戶端負載平衡,一是通過配置用戶端的load_balance,一是通過設定管理員端的remote_listener參數。兩種方式各有優劣,而且兩者並不相互排斥,因此可以結合兩種方式來更加有效實現負載平衡。本文將描述兩者結合的使用方式(oralce 10g rac)。 有關用戶端與服務端負載平衡的單獨測試請參考: Oracle
Time of Update: 2018-12-03
1、cmd下運行:sqlplus "/as sysdba"2、SQL>shutdown immediate 停止服務3、SQL>startup 啟動服務,觀察啟動時有無資料檔案載入報錯,並記住出錯資料檔案標號4、SQL> alter database datafile 'XX.DBF' offline drop; XX.DBF 表示你記錄的資料檔案的路徑,也就是3中標誌的檔案5、SQL>shutdown
Time of Update: 2018-12-03
笛卡爾集笛卡爾集會在下麵條件下產生:•省略串連條件•串連條件無效•所有表中的所有行互相串連為了避免笛卡爾集, 可以在 WHERE 加入有效串連條件。使用串連在多個表中查詢資料。在 WHERE 字句中寫入串連條件。在表中有相同列時,在列名之前加上表名首碼區分重複的列名使用表名首碼在多個表中區分相同的列。在不同表中具有相同列名的列可以用表的別名加以區分。使用別名可以簡化查詢。使用表名首碼可以提高執行效率。等值串連select * from dept d,emp e where d.deptno=e.
Time of Update: 2018-12-03
可能有兩方面的原因,網上搜到很多都是下面說的第二點原因,而往往第一點原因也很常見: 1、Oracle整合的Oracle Servlet Engine佔用了8080連接埠,Tomcat的預設連接埠也正是8080, 可以很容易地修改Tomcat的連接埠,但測試發現Tomcat似乎在其它連接埠下運行效能較差,速度 較慢(非常奇怪,不知什麼原因,我測試過顯示圖片的速度,相差很遠),故可修改Oracle Servlet
Time of Update: 2018-12-03
常見Oracle HINT的用法:1. /*+ALL_ROWS*/表明對語句塊選擇基於開銷的最佳化方法,並獲得最佳輸送量,使資源消耗最小化.例如:SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/表明對語句塊選擇基於開銷的最佳化方法,並獲得最佳回應時間,使資源消耗最小化.例如:SELECT /*+FIRST_ROWS*/
Time of Update: 2018-12-03
上次記錄了Java使用thin方式串連Oracle叢集的Uri寫法,參考網上資料有串連不穩定的說法,本人尚未做測試,但是查資料發現OCI(Oracle Call Interface)的方式更為穩定,最後決定使用這種方式。按照以下步驟完成環境配置:1.安裝Oracle client,根據提示或者直接在安裝目錄建立設定檔:tnsnames.ora,內容可參考下面內容:DBCENTER = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS =
Time of Update: 2018-12-03
需求: 當天約會的案例在最前面--> 從未處理過的案例--> 上次處理時間由小到大排序(即越近催收的案例在越後面) 即:(col_case.case_app_date=sysdate)-->(col_case.case_lst_col_date is null)-->(col_case.case_lst_col_date)select case when trunc(t.case_app_date)=trunc(sysdate) then '1'
Time of Update: 2018-12-03
當我們最佳化ORACLE效能,檢查了Shared Pool和Buffer Cache命中率之後,意識到需要使這些結構的變得更大才能改進它們,但伺服器中沒有足夠的記憶體來支援這一改進。同時又發現Redo Log Buffer的Retry Ratio又很低,表明Redo Log Buffer可能被設定得太大,在我們沒有購買記憶體的情況下,調小Redo Log Buffer可能會是不錯的選擇哦! 不過調整之前一定要謹慎,需要經過效能和安全性之間的反覆權衡!
Time of Update: 2018-12-03
1. 停止所有ORACLE服務2. 使用ORACLE Universal Installer卸載ORACLE3. 刪除註冊表上的ORACLE的有關索引值(開始à運行à regedit)將HKEY_LOACAL_MACHINE/SOFTWARE下的主鍵ORACLE全部刪除。4.