|
|
|
Skorost' wypolnenija saprosa
|
|||
|---|---|---|---|
|
#18+
Privet wsem!!! U menja takaja problema: Est' tabliza: -- Create table create table XIMM ( MM_ID NUMBER(12) not null, MM_IDNAME VARCHAR2(100) not null, MM_TYPE NUMBER(4) default 0 not null, MM_HOST VARCHAR2(24) default 'localhost' not null, MM_DIR VARCHAR2(200) not null, MM_NAME VARCHAR2(100) not null, MM_KEYIDX NUMBER(8) default 1, MM_FILEDATE DATE default SYSDATE not null, MM_FILEFORMAT VARCHAR2(6), MM_FILESTAT CHAR(1), MM_INSDATE DATE default SYSDATE, MM_MODDATE DATE default SYSDATE, MM_USER VARCHAR2(30) default USER, MM_SIZE NUMBER(12) default 0, MM_SUPPLIER VARCHAR2(24) ) tablespace MM pctfree 10 pctused 40 initrans 1 maxtrans 255 storage ( initial 23920K next 1M minextents 1 maxextents 249 pctincrease 0 ); -- Create/Recreate primary, unique and foreign key constraints alter table XIMM add constraint XIMM_P1 primary key (MM_ID) using index tablespace MMIDX pctfree 5 initrans 2 maxtrans 255 storage ( initial 3620K next 2304K minextents 1 maxextents 249 pctincrease 50 ); alter table XIMM add constraint XIMM_U1 unique (MM_HOST,MM_DIR,MM_NAME,MM_KEYIDX) using index tablespace MMIDX pctfree 10 initrans 2 maxtrans 255 storage ( initial 25820K next 13124K minextents 1 maxextents 249 pctincrease 50 ); alter table XIMM add constraint XIMM_R1 foreign key (MM_ID) references MMID (MM_ID) on delete cascade; Delaju sapros: SELECT mm_id, mm_dir FROM XIMM WHERE mm_idname = 'datname' AND SUBSTR(mm_dir, INSTR(mm_dir, '\', -1) + 1) = UPPER(RTRIM('rol_nr', ' ')); Po mere sapolnenija tablizy sil'no uwelichiwaetsja wremja wypolnenijy saprosa (nachinaja so 150000 sapisey w XIMM). Podskagite pogaluysta, chto mogno sdelat', chtoby sapros wypolnjalsja bystree. Ja rabotaju na Oracle 8.1.6.0.0 pod Win 2000 Server. Saranee spasibo! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2003, 13:17:42 |
|
||
|
Skorost' wypolnenija saprosa
|
|||
|---|---|---|---|
|
#18+
Можно создать индексы для атрибутов, используемых в условии WHERE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2003, 13:23:59 |
|
||
|
Skorost' wypolnenija saprosa
|
|||
|---|---|---|---|
|
#18+
Spasibo, poprobuju!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2003, 13:47:58 |
|
||
|
Skorost' wypolnenija saprosa
|
|||
|---|---|---|---|
|
#18+
Your row's size ~ 554 Byte. "Zamedlenie" nachinaya ~ 83 MByte. A. alter table XIMM add constraint XIMM_01 unique (MM_IDNAME,MM_ID); SELECT /*+ Index(XIMM, XIMM_01) */ mm_id, mm_dir FROM XIMM WHERE mm_idname = 'datname' AND SUBSTR(mm_dir, INSTR(mm_dir, '\', -1) + 1) = UPPER(RTRIM('rol_nr', ' ')) Index Range Scan:: B. XIMM_U1 ::pctincrease 50(?!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2003, 13:49:43 |
|
||
|
Skorost' wypolnenija saprosa
|
|||
|---|---|---|---|
|
#18+
Добавь колонку (sub_mm_dir) в которую будешь записывать значение при insert: SUBSTR(mm_dir, INSTR(mm_dir, '\', -1) + 1) Код: 1. 2. 3. 4. 5. Не про селект: проверь как у тебя растет NEXT EXTENT при pctincrease 50 тебе точно нужна такая уникальность MM_HOST VARCHAR2(24),MM_DIR VARCHAR2(200),MM_NAME VARCHAR2(100),MM_KEYIDX NUMBER(8) max длина 24+200+100+8=332? insert не тормозит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2003, 19:40:16 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32176784&tid=1990173]: |
0ms |
get settings: |
6ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 202ms |
| total: | 489ms |

| 0 / 0 |
