標籤:最近做的一個項目涉及到大資料量的資料表查詢。資料表總量在7億-20億左右,以主鍵建立全域唯一索引,分區策略是hash分區+定界分割,很大部分情況下查詢條件命中記錄數超過萬條,單次返回前XX條記錄。在調優過程中總結出以下經驗:(1)在商務規則允許的情況下,盡量減少區間限制條件,即便該屬性是索引欄位。如:DATE>=min AND DATA <= max。如果有區間限制條件,會將所有記錄與限制條件逐一比較,如果記錄數較大,則會嚴重影響查詢效率。(2)使用order
標籤:--1、選擇在部門 30 中員工的所有資訊select * from emp where EMPNO=30;--2、列出職位為(MANAGER)的員工的編號,姓名select EMPNO, ENAME from emp where job=‘MANAGER‘;--3、找出獎金高於工資的員工select * from emp where COMM>SAL;--4、找出每個員工獎金和工資的總和select EMPNO,ENAME,COMM+SAL from emp;--5、找出部門 1
標籤:--查看記錄檔select member from v$logfile;--查看錶空間使用方式SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name FROM dba_free_space GROUP BYtablespace_name; SELECTa.tablespace_name, a.bytes total, b.bytes
標籤:例子1:尋找一個表中的重複資料,重複記錄是根據單個欄位(Id)來判斷,表名為STUDENT SELECT ID , COUNT(1) FROM STUDENT T GROUP BY T.ID HAVING COUNT(ID) > 1 例子2:刪除表中多餘的重複記錄,重複記錄是根據單個欄位(Id)來判斷,只留有rowid最小的記錄,表名為STUDENTDELETE FROM STUDENT WHERE
標籤:--查資料表空間的名稱和大小SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.tablespace_name GROUP BY t.tablespace_name;--尋找資料表空間的實體名稱SELECT