Time of Update: 2018-07-26
一個困擾我良久的問題,在今天早上8:41分時基本解決。 資料庫的資料量非常龐大,查詢速度極慢,建立索引後“=”搜尋速度問題解決,但是在搜尋的sql語句中大部分是用like,可是like '%XXX%'是不使用索引的,而like 'XXX%'則經過索引,求教曾經的老師、進階程式員也無用,在網站上搜尋、求助,最終鎖定兩種辦法:1.全文索引。2.搜尋引擎。
Time of Update: 2018-07-26
最近使用oracle的基本操作 1、關於資料庫的匯入匯出 不管是匯入匯出,最基本的還是本地需要安裝oracle用戶端,不然最基本的匯入匯出關鍵字都識別不了,這個是最基本的條件(這篇主要講從本地匯入匯出本機資料庫和從本地匯入匯出到遠程伺服器的資料庫) 匯入匯出命令:imp、exp。 1匯入命令:imp
Time of Update: 2018-07-26
物化視圖概念類似於discoverer中的summary table。在discoverer的管理端,可以建立不同的summary table。在discoverer進行查詢的時候,discoverer首先對查詢進行解析,判斷查詢是否可以使用對應的summary table,如果可以,將會改寫查詢去查詢對應的summary table。一個例子通過如下的例子,對比統計資料需求的情況下,使用物化視圖會有更快的訪問速度。--建立一張大表SQL> create table
Time of Update: 2018-07-26
set linesize 200set long 100000set wrap oncol "Create_User_DDL" for a200 wrapped worddefine UserName="'VINCENT'"-- 修改 UserName,查詢其他的已存在帳號select dbms_metadata.get_ddl('USER',&UserName) "Create_User_DDL" from dual;--
Time of Update: 2018-07-26
比較大小函數 sign 函數文法: sign(n) 函數說明: 取數字n的符號,大於0返回1,小於0返回-1,等於0返回0 樣本: 一、select sign( 100 ),sign(- 100 ),sign( 0 ) from dual; SIGN(100) SIGN(-100) SIGN(0) ———- ———- ———- 1 -1 0 二、a=10,b=20 則sign(a-b)返回-1
Time of Update: 2018-07-26
綜述 使用 DELETE 語句從表中刪除資料。 基本套路 DELETE [FROM] table[WHERE condition]; 基本應用 使用WHERE 子句指定刪除的記錄。 DELETE FROM departments WHERE department_name = 'Finance';1 row deleted. SQL> edWrote file afiedt.buf 1* delete from
Time of Update: 2018-07-26
1、用dba角色的使用者登陸,進行解鎖,先設定具體時間格式,以便查看具體時間 SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; Session altered. 2、查看具體的被鎖時間 SQL> select username,lock_date from dba_users where username='TEST'; USERNAME LOCK_DATE TEST 2009-03-1
Time of Update: 2018-07-26
今天早上使用者打電話說系統的排序有問題,仔細看了一下,問題好像是出在ROWNUM這個函數上。 在Oracle下ROWNUM函數是對查詢結果按照順序分配自增行序號,所以很多人都利用這個特點進行分頁操作,即rownum between 30 and 60,這種限制返回行數的小竅門在普通情況下都很正常,但如果要對返回結果在進行排序就變得亂套了。 如下查詢: select page.* from( select rownum page_id,
Time of Update: 2018-07-26
1 查看資料庫鎖,診斷鎖的來源及類型 select object_id,session_id,locked_mode from v$locked_object; 或者用以下命令: select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object l,
Time of Update: 2018-07-26
準備階段 1.建表語句: create table table1( idd varchar2(10) , val varchar2(20) ); create table table2( idd varchar2(10), val varchar2(20) ); 2.插入資料: insert into table1 values ('01','1111');insert into table1 values ('02','222'); insert into
Time of Update: 2018-07-26
下面這個應當是大家常用的. SQL> SELECT SID FROM V$MYSTAT WHERE ROWNUM =1; SID ———- 19949 下面一個更簡單, 但只能在Oracle 10g及以上版本中使用. SQL> SELECT USERENV(‘SID’)
Time of Update: 2018-07-27
表函數可接受查詢語句或遊標作為輸入參數,並可輸出多行資料。該函數可以平行執行,並可持續輸出資料流,被稱作管道式輸出。應用表函數可將資料轉換分階段處理,並省去中間結果的儲存和緩衝表。 1. 用遊標傳遞資料利用遊標 REF CURSOR 可將資料集(多行記錄)傳遞到PL/SQL函數:SELECT * FROM TABLE (myfunction (CURSOR (SELECT *
Time of Update: 2018-07-27
1 狀態查詢 啟動狀態 SQL語句 結果 nomount select status from v$instance; STARTED select open_mode from v$database; ERROR at line 1: ORA-01507: database not mounted
Time of Update: 2018-07-27
1,swingben介紹 目前網路上開源的oracle壓力測試工具主要是orabm和swingbench,由於orabm不支援oracle 11g版本,因此本次測試使用了swingben進行了壓力測試。另外,swingbench還能對rac進行測試。swingbench是UK based oracle Database Solutions
Time of Update: 2018-07-28
1、LONG 資料類型中儲存的是可變長字串,最大長度限制是2GB。2、對於超出一定長度的文本,基本只能用LONG類型來儲存,資料字典中很多個物件的定義就是用LONG來儲存的。 1、LONG
Time of Update: 2018-07-28
下面的方法需要ORACLE9i和以上的版本才支援。 Oracle9i之前,中文是按照二進位編碼進行排序的。 在oracle9i中新增了按照拼音、部首、筆畫排序功能。設定NLS_SORT值 SCHINESE_RADICAL_M 按照部首(第一順序)、筆劃(第二順序)排序 SCHINESE_STROKE_M 按照筆劃(第一順序)、部首(第二順序)排序 SCHINESE_PINYIN_M 按照拼音排序,系統的預設排序方式為拼音排序 舉例如下: 表名為
Time of Update: 2018-07-29
oracle 11g 資料庫雖然提供了linux x86的版本,但是支援的linux版本只有Red Hat,Novell and Solaris 這幾個,debian 和 ubuntu 不在支援之列,所以在ubuntu下安裝就相對麻煩一些,請照著下文的方法一步一步的安裝,不要急躁,每一步都要認真作(我開始裝的時候就是有點急,用自 己的方法簡化了其中幾步,結果。。。。安裝失敗-_-b )。 我的系統:ubuntu 8.04 desktop (32位) 記憶體:896M (本來是1G,
Time of Update: 2018-07-29
分頁查詢 column ambiguously defined 未明確定義的列 select * from (select abc.*, rownum m from (select t.oid,
Time of Update: 2018-07-29
如果sql語句中有''(單引號或者雙引號)括的字串,則需要同表中嚴格一致,不然會顯示“找不到行”這個錯誤。alter語句的用法alter語句的用法需要修改結構的,就用到alter語句,方法如下:ALTER TABLE語句用於修改已經存在的表的設計。文法:ALTER TABLE table ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index]ALTER TABLE table ADD CONSTRAINT
Time of Update: 2018-07-29
Oracle job有定時執行的功能,可以在指定的時間點或每天的某個時間點自行執行任務。 而且oracle重新啟動後,job會繼續運行,不用重新啟動。 一、查詢系統中的job,可以查詢檢視 --相關視圖 select * from dba_jobs; select * from all_jobs; select * fromuser_jobs; -- 查詢欄位描述 /* 欄位(列)