| 前提条件 |
| oracle,listener等がインストール済みで、サーバ等のshutdownに伴い、停止状態である。 |
| ↓(unixにoracleユーザ等でログイン後のコマンド内容 |
| lsnrctl |
| start |
| exit |
| (補足:リスナーの起動終了。net8を使用する場合) |
| svrmgrl |
| connectinternal |
| startup |
| disconnect |
| exit |
| (補足:DBの起動終了) |
| ↓ |
| これでsqlplus等からの接続が可能になっているはずです。 |
| sqlplus |
| 前提条件 |
| テーブルA : 4,000件 比較対象フィールド4つ |
| テーブルB : 80件 マスター表 |
| LIKEとINSTRを利用した場合の速度差は5secでした。 |
| LIKE = 7秒強 |
| INSTR = 2秒強 |
| ------------(例SQL)------------- |
| (LIKE) |
|
SELECT A.NO FROM TABLE_A A, TABLE_B B WHERE A.CODE = B.CODE AND A.FLAG1 = 0 AND B.FLAG1 = 0 AND B.FLAG2 = 0 AND ROWNUM <= 100 AND (A.TITLE LIKE'%部分一致%' OR A.Q1 LIKE '%部分一致%' OR A.Q2 LIKE '%部分一致%' OR A.A1 LIKE '%部分一致%' OR A.A2 LIKE '%部分一致%') ORDER BY A.NO DESC; |
| ----------------------------- |
| (INSTR) |
| SELECT A.NO FROM TABLE_A A, TABLE_B B WHERE A.CODE = B.CODE AND A.FLAG1 = 0 AND B.FLAG1 = 0 AND B.FLAG2 = 0 AND ROWNUM <= 100 AND (INSTR(A.TITLE,'部分一致')>0 OR INSTR(A.Q1,'部分一致')>0 OR INSTR(A.Q2,'部分一致')>0 OR INSTR(A.A1,'部分一致')>0 OR INSTR(A.A2,'部分一致')>0) ORDER BY A.NO DESC; |
| ----------------------------- |
| 試してみる価値ありですよ。 |
| sequenceを作成する |
| ----------------- |
| CREATE SEQUENCE <順序名> |
| [ START WITH <初期値> ] |
| [ INCREMENT BY <増分値> ] |
| [ MAXVALUE <最大値> | NOMAXVALUE ] |
| [ MINVALUE <最小値> | NOMINVALUE ] |
| [ CACHE <キャッシュ数> | NOCYCLE ] |
| ----------------- |
|
CREATE SEQUENCE SEQ INCREMENT BY 1 START WITH 1 MAXVALUE 1.0000E+12 NOMINVALUE CYCLE CACHE 10 NOORDER |