[ОТВЕТИТЬ]
Опции темы
03.06.2009 09:56
 
Написал несколько отчетиков, в которых использую свои таблички.
Пользователи стали жаловаться что медленно работают отчеты, стал выяснять, заметил что оракл задумывается
при выполнении delete from vito_workdays
тоже самое происходит если использовать truncate
притом задумывается больше чем на 30мин ..., а потом как ни в чем не бывало делает остальные запросики и выводит результат за считанные секунды, хотя остальные запрос сложные и тяжелые :(
таблица:
CREATE TABLE vito_workdays
(datekalend DATE NOT NULL,
works NUMBER)
PCTFREE 10
INITRANS 1
MAXTRANS 255
TABLESPACE users
STORAGE (
INITIAL 65536
MINEXTENTS 1
MAXEXTENTS 2147483645
)
/

-- Constraints for VITO_WORKDAYS

ALTER TABLE vito_workdays
ADD PRIMARY KEY (datekalend)
USING INDEX
PCTFREE 10
INITRANS 2
MAXTRANS 255
TABLESPACE users
STORAGE (
INITIAL 65536
MINEXTENTS 1
MAXEXTENTS 2147483645
)
/

подскажите, почему?
хотя все остальное делается быстро
03.06.2009 10:22
 
А поподробнее?
Сколько в ней чего? Нет ли в алерте чего лишнего? Какие связи с другими таблицами?
03.06.2009 12:02
 
попробуй при создании таблицы и индекса использовать предикат NOLOGGING

create table test.mytable (id integer,crdate date)
TABLESPACE SINHRA
NOLOGGING;

ALTER TABLE test.mytable
ADD PRIMARY KEY (id)
USING INDEX
TABLESPACE SINHRA
NOLOGGING;
03.06.2009 13:25
 
связей нет, в алертах ничего такого нет
у меня есть подозрение что отчет запускают на двух компах одновременно, и пока один табличку инсертит, другой пытается удалить, потому что подвисает не всегда
03.06.2009 13:51
 
Цитата:
Mr_Vito связей нет, в алертах ничего такого нет
у меня есть подозрение что отчет запускают на двух компах одновременно, и пока один табличку инсертит, другой пытается удалить, потому что подвисает не всегда
Добавь в таблицу "userid" и делай delete from table where userid=:userid либо не делай commit в сессии.
03.06.2009 13:55
 
А может проще сделать таблицу темповой?
Если она заполняется при каждом запуске отчета?
03.06.2009 14:06
 
я наверное вообще в память все уберу, просто поленился, надо было быстро сделать, пошел самым простым способом
03.06.2009 14:53
 
Цитата:
Mr_Vito я наверное вообще в память все уберу, просто поленился, надо было быстро сделать, пошел самым простым способом
Mtirt послушай...
Опции темы



Часовой пояс GMT +3, время: 12:23.

Все в прочитанное - Донат - RSS - - Карта - Вверх

Форум сделан на основе vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.