|
|
|
Re: Подскажите как оптимально спроектировать
|
|||
|---|---|---|---|
|
#18+
Мне кажется,что проблема скорости надумана: 1.работает индекс по человеку,а потом уже по нему идет поиск max. Ну сколько может быть работ у одного человека - ну предположим 50 (хотя и это тяжело представить). Среди них найти max - плевое дело. 2. по поводу запроса - не понял,зачем п.1 -- Start of DDL Script for Table PERSO.TEST_PEOPLE -- Generated 16-íîÿ-2006 14:01:55 from PERSO@xdealcb8.larva.icbank CREATE TABLE test_people (id NUMBER NOT NULL, fio VARCHAR2(20)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 TABLESPACE tools STORAGE ( INITIAL 65536 MINEXTENTS 1 MAXEXTENTS 2147483645 ) / -- Constraints for TEST_PEOPLE ALTER TABLE test_people ADD CONSTRAINT pk_tp PRIMARY KEY (id) USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 TABLESPACE tools STORAGE ( INITIAL 65536 MINEXTENTS 1 MAXEXTENTS 2147483645 ) / -- End of DDL Script for Table PERSO.TEST_PEOPLE -- Start of DDL Script for Table PERSO.TEST_WORK_PEOPLE -- Generated 16-íîÿ-2006 14:02:15 from PERSO@xdealcb8.larva.icbank CREATE TABLE test_work_people (id_work NUMBER NOT NULL, id_people NUMBER NOT NULL, dt DATE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 TABLESPACE tools STORAGE ( INITIAL 65536 MINEXTENTS 1 MAXEXTENTS 2147483645 ) / -- Indexes for TEST_WORK_PEOPLE CREATE INDEX fk_p ON test_work_people ( id_people ASC ) PCTFREE 10 INITRANS 2 MAXTRANS 255 TABLESPACE tools STORAGE ( INITIAL 65536 MINEXTENTS 1 MAXEXTENTS 2147483645 ) / -- Constraints for TEST_WORK_PEOPLE ALTER TABLE test_work_people ADD CONSTRAINT pk_d PRIMARY KEY (id_work) USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 TABLESPACE tools STORAGE ( INITIAL 65536 MINEXTENTS 1 MAXEXTENTS 2147483645 ) / -- End of DDL Script for Table PERSO.TEST_WORK_PEOPLE -- Foreign Key ALTER TABLE test_work_people ADD CONSTRAINT fk_p FOREIGN KEY (id_people) REFERENCES test_people (id) / -- End of DDL script for Foreign Key(s) INSERT INTO test_people (ID,FIO) VALUES (3,'Сидоров') / INSERT INTO test_people (ID,FIO) VALUES (2,'Петров') / INSERT INTO test_people (ID,FIO) VALUES (1,'Иванов') / INSERT INTO test_work_people (ID_WORK,ID_PEOPLE,DT) VALUES (5,2,'13 НОЯБРЬ 2006 Г.') / INSERT INTO test_work_people (ID_WORK,ID_PEOPLE,DT) VALUES (4,2,'3 ОКТЯБРЬ 2006 Г.') / INSERT INTO test_work_people (ID_WORK,ID_PEOPLE,DT) VALUES (3,1,'30 НОЯБРЬ 2006 Г.') / INSERT INTO test_work_people (ID_WORK,ID_PEOPLE,DT) VALUES (2,1,'7 НОЯБРЬ 2006 Г.') / INSERT INTO test_work_people (ID_WORK,ID_PEOPLE,DT) VALUES (1,1,'1 НОЯБРЬ 2006 Г.') / select max(b.dt) FROM test_people a, test_work_people b where a.id=1 План: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2006, 14:05 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=129&tid=1544895]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 347ms |

| 0 / 0 |
