powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите оптимизовать запрос, очень долго виполняется
48 сообщений из 48, показаны все 2 страниц
Помогите оптимизовать запрос, очень долго виполняется
    #38705048
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select distinct(d.dbid), count(d.id)
from t_document d
join object o on d.dbid = o.dbid and d.id = o.id and o.change_date > '01.05.2014' and o.change_date < '01.06.2014'
join t_editor e on o.editor_dbid=e.dbid and o.editor_id=e.id
join t_doc_type dt on e.doc_type_dbid = dt.dbid and e.doc_type_id = dt.id and
dt.form_decision2_dbid=0 and dt.form_decision2_id in (16990,16988,16991,16989,16992,209964)
where d.status_doc_dbid = 0 and d.status_doc_id = 14817
group by d.dbid

Plan (204 records)
PLAN SORT (SORT (JOIN (O INDEX (IDX_CHANGE_DATE), D INDEX (PK_T_DOCUMENT), E INDEX (PK_T_EDITOR), DT INDEX (PK_T_DOC_TYPE))))

------ Performance info ------
Prepare time = 78ms
Execute time = 19m 43s 2ms
Avg fetch time = 43 814,89 ms
Current memory = 188 638 320
Max memory = 206 549 056
Memory buffers = 10 000
Reads from disk to cache = 0
Writes from cache to disk = 0
Fetches from cache = 0
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705056
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCaut,

t_document - есть ли у ней индекс по полю dbid ?
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705059
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблоид,

Сейчас гляну
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705072
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCaut
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select distinct(D.Dbid), count(D.Id)
  from T_Document D
    join Object O on D.Dbid = O.Dbid and
          D.Id = O.Id and
          O.Change_Date > '01.05.2014' and
          O.Change_Date < '01.06.2014'
    join T_Editor E on O.Editor_Dbid = E.Dbid and
          O.Editor_Id = E.Id
    join T_Doc_Type Dt on E.Doc_Type_Dbid = Dt.Dbid and
          E.Doc_Type_Id = Dt.Id and
          Dt.Form_Decision2_Dbid = 0 and
          Dt.Form_Decision2_Id in (16990, 16988, 16991, 16989, 16992, 209964)
  where D.Status_Doc_Dbid = 0
    and D.Status_Doc_Id = 14817
  group by D.Dbid


Plan (204 records)
PLAN SORT (SORT (JOIN (O INDEX (IDX_CHANGE_DATE), D INDEX (PK_T_DOCUMENT), E INDEX (PK_T_EDITOR), DT INDEX (PK_T_DOC_TYPE))))


Ну для начала убрав Distinct, который тут совсем не нужен, возможно избавишься в плане от одного SORT , хотя не думаю что это поможет
зы. запрос как запрос, не зная какие там индексы, и их статистику, как мне кажется оптимизировать ничего нельзя

ззы.
и как меня "утомляет" вот такое
Код: sql
1.
2.
3.
4.
5.
    join Object O on 
          D.Dbid = O.Dbid and
          D.Id = O.Id and
          O.Change_Date > '01.05.2014' and
          O.Change_Date < '01.06.2014'


вместо
Код: sql
1.
2.
3.
4.
5.
    join Object O on 
          O.Dbid = D.Dbid and
          O.Id = D.Id and
          O.Change_Date > '01.05.2014' and
          O.Change_Date < '01.06.2014'


но это мои предпочтения
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705074
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCaut
Код: sql
1.
O.Change_Date >= '01.05.2014' and


Может так надежнее?
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705075
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Індекси використовується по всім таблицям, це в плані видно
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705079
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCaut
Код: sql
1.
select distinct(d.dbid) ..... group by d.dbid


Какой идиот сюда поставил distinct?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705083
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторNOCaut
O.Change_Date >= '01.05.2014' and

Может так надежнее?

я в сам процес не углублялся, задачу дали оптимизировать чтоб бстрее было
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705086
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCaut, а почему не в Access?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705092
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
непонял?
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705094
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Nocaut!
You wrote on 24 июля 2014 г. 15:33:08:

Nocaut> непонял? а я знаю?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705100
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCautавторNOCaut
O.Change_Date >= '01.05.2014' and

Может так надежнее?

я в сам процес не углублялся, задачу дали оптимизировать чтоб бстрее было
Тогда даю повод ткнуть разработчикам в явную ошибку в логике, чтобы вырасти в их (и не только) глазах. :)
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705103
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
)))
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705104
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCaut,

для начала перемести из on все условия по котором нет связи в where. Хоть это и не оптимизирует но вопрос станет понятней. И заодно убери DISTINCT

получаем

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SELECT
    D.DBID,
    COUNT(D.ID)
FROM
    T_DOCUMENT D
    JOIN OBJECT O ON D.DBID = O.DBID
          AND D.ID = O.ID
    JOIN T_EDITOR E ON O.EDITOR_DBID = E.DBID
          AND O.EDITOR_ID = E.ID
    JOIN T_DOC_TYPE DT ON E.DOC_TYPE_DBID = DT.DBID
          AND E.DOC_TYPE_ID = DT.ID
WHERE D.STATUS_DOC_DBID = 0
  AND D.STATUS_DOC_ID = 14817
  AND O.CHANGE_DATE > '01.05.2014'
  AND O.CHANGE_DATE < '01.06.2014'
  AND DT.FORM_DECISION2_DBID = 0
  AND DT.FORM_DECISION2_ID IN (16990, 16988, 16991, 16989, 16992, 209964)
GROUP BY D.DBID  



смотрим на него и удивляемся. Если ID - это ПК, то

автор JOIN OBJECT O ON D.DBID = O.DBID
AND D.ID = O.ID

условия вида D.DBID = O.DBID лишние. Точнее можно сказать если будут приведены DDL таблиц из запроса.
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705107
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор. . .
join Object O on D.Dbid = O.Dbid and
D.Id = O.Id and
O.Change_Date > '01.05.2014' and
O.Change_Date < '01.06.2014'

PLAN SORT (SORT (JOIN ( O INDEX (IDX_CHANGE_DATE) , D INDEX (PK_T_DOCUMENT), E INDEX (PK_T_EDITOR), DT INDEX (PK_T_DOC_TYPE))))

Індекси використовується по всім таблицям, це в плані видно В таблице 'object' есть индекс(ы) по полям dbid + id или по ним же, но по-отдельности ?
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705114
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
убрал DISTINCT жду выполнения запроса, потом посмотрю мндекс
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705119
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCautPlan (204 records)
PLAN SORT (SORT (JOIN (O INDEX (IDX_CHANGE_DATE), D INDEX (PK_T_DOCUMENT), E INDEX (PK_T_EDITOR), DT INDEX (PK_T_DOC_TYPE))))

------ Performance info ------
Prepare time = 78ms
Execute time = 19m 43s 2ms
Avg fetch time = 43 814,89 ms
Current memory = 188 638 320
Max memory = 206 549 056
Memory buffers = 10 000
Reads from disk to cache = 0
Writes from cache to disk = 0
Fetches from cache = 0

фигня какая то
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705121
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ето план результата запроса, сейчас попробую посмотреть что в Plan Analyzer
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705123
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCaut,

я про 0 фетчей
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705124
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCautІндекси використовується по всім таблицям, це в плані видно
К сожалению использование индексов по всем таблицам (что показано в плане),
не дает никакой информации, окромя того что они используются

нет, конечно можно догадаться что таблицы D , E , DT связаны по первичному ключу
и что для таблицы О используется индекс по полю .change_date
но это только догадки, которые могут совсем не соответствовать реальности
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705132
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
результат плана
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705133
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Симонов Денис!
You wrote on 24 июля 2014 г. 15:55:19:

Симонов Денис> я про 0 фетчей
папа, а ты с кем сейчас разговаривал? (с)

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705135
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий я непонимаю вас
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705140
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,
И в догонку, если я правильно читаю план
ведущей была выбрана таблица object o ,
возможно было-бы лучше если ведущей была таблица T_DOCUMENT D
но это уже зависит от данных о которых тебе известно больше чем нам
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705142
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCaut,

где DDL таблиц? У меня есть подозрения что FK не создано ни в одной из таблиц
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705149
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я первий раз сегодня с IBExpertom работаю. где DDL тут вытащить можна?
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705152
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И в догонку, если я правильно читаю план
ведущей была выбрана таблица object o,
возможно было-бы лучше если ведущей была таблица T_DOCUMENT D
но это уже зависит от данных о которых тебе известно больше чем нам

пусть лутше так будет бо object ище больше база
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705153
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCaut,

щёлкаешь на нужною табличку. Открывается окошко, тама есть закладка "Скрипт" (DDL). Копируешь отудова содержимое. Так для всех 4 табличек.

З.Ы. Моно конечно ещё статистику для индексов пересчитать.
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705154
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Nocaut!
You wrote on 24 июля 2014 г. 16:08:35:

Nocaut> пусть лутше так будет бо object ище больше база
отойди от компьютера.
и позови преподавателя.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705156
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторотойди от компьютера.
и позови преподавателя.

намек, понял. но я тут не кричу что я ас в SQL запросах, я пришол за помощу на форум
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705167
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DLL нашол. что именно вас интересует там? все скопировать немогу, все в рамках авторских прав
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705170
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Nocaut!
You wrote on 24 июля 2014 г. 16:20:22:

Nocaut> DLL нашол. что именно вас интересует там?
> все скопировать немогу, все в рамках авторских прав
мальчик, позови кого-нибудь из взрослых к монитору.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705173
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как думаете IN может тормозить запрос?
AND DT.FORM_DECISION2_ID IN (16990, 16988, 16991, 16989, 16992, 209964)
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705174
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCaut,

структура этих 4 таблиц, PK, FK и индексы для них.
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705176
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий - спасибо за помощ, можете не отвечать больше
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705179
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ключів дуже багато, мабуть нічого не вийде в нас. всім спасибі за допомогу
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705183
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCautвсе в рамках авторских прав
Тогда иди и читай http://ibase.ru/develop.htm#performance самостоятельно. От корки до
корки. Три раза как минимум.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705185
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705188
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCautкак думаете IN может тормозить запрос?
AND DT.FORM_DECISION2_ID IN (16990, 16988, 16991, 16989, 16992, 209964)
в твоем случае скорее всего нет
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705194
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCaut все скопировать немогу, все в рамках авторских прав
от оно как. А не нарушили ли вы авторские права опубликовав сюда запрос, а тем более его план
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705200
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ні не порушив.
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705215
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Nocaut!
You wrote on 24 июля 2014 г. 16:43:12:

Nocaut> ні не порушив. а на майданi скакав?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705219
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
один запрос і навіть його план не дасть вам ніякої інформації о проекті
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705223
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийHello, Nocaut!
You wrote on 24 июля 2014 г. 16:43:12:

Nocaut> ні не порушив. а на майданi скакав?

Чего-ты про майдан вспомнил, это уж точно не имеет никакого отношения к его вопросам

зы.
я был на майдане, если кому-то это интересно
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705225
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторя был на майдане, если кому-то это интересно
Був під час наступів?
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705226
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCautодин запрос і навіть його план не дасть вам ніякої інформації о проекті
ну нельзя так нельзя, что читать тебе уже подсказали
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705229
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOCautавторя был на майдане, если кому-то это интересно
Був під час наступів?
это здесь не обсуждается
...
Рейтинг: 0 / 0
Помогите оптимизовать запрос, очень долго виполняется
    #38705230
NOCaut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все тему закрито. Всім спасибі
...
Рейтинг: 0 / 0
48 сообщений из 48, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите оптимизовать запрос, очень долго виполняется
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]