Найдено 15 результатов

korotkov
26 апр 2007, 19:50
Форум: Проектирование БД и запросов
Тема: Преобразовать три запроса в один, сбор статистики по таблице
Ответы: 11
Просмотры: 10003

Dimitry Sibiryakov писал(а):Ужос. Одно выкидывание EXISTS сэкономит процентов 10-20.
:lol:
если 10-20% ужос, то ... :)

дарагой, зачем такой категоричный?


P.S. ХП написана по мотивам "Мир Interbase" 3-е издание стр.69 PROCEDURE GETFULLNAME ...

:)
korotkov
26 апр 2007, 13:18
Форум: Проектирование БД и запросов
Тема: Преобразовать три запроса в один, сбор статистики по таблице
Ответы: 11
Просмотры: 10003

CREATE PROCEDURE GetAllChilds(Parent INTEGER) RETURNS(ID INTEGER) AS BEGIN FOR SELECT r.ID FROM tblRegions r WHERE r.Parent=:Parent INTO :ID DO BEGIN SUSPEND; IF(EXISTS(SELECT * FROM tblRegions WHERE tblRegions.Parent=:ID)) THEN BEGIN FOR SELECT ID FROM GetAllChilds(:ID) INTO :ID DO BEGIN SUSPEND; ...
korotkov
25 апр 2007, 23:42
Форум: Проектирование БД и запросов
Тема: Работа со справочниками ... (филиалы)
Ответы: 9
Просмотры: 8405

... вот, есть еще ягоды в ягодицах, а то думал уже совсем все забыл ;)

спасибо!
korotkov
25 апр 2007, 22:25
Форум: Проектирование БД и запросов
Тема: Преобразовать три запроса в один, сбор статистики по таблице
Ответы: 11
Просмотры: 10003

Спасибо WildSery!!! Время выполнения запроса и построения дерева сократилось в ДВА-ТРИ РАЗА. Хотя всеравно осталось бльшим :( База пока совсем маленькая 100 записей в tblRegions и 1500 в tblObjavas 59с -> 22с На другой 16 записей в tblRegions и 639 в tblObjavas, сократилось с 1.6с до 0.8с Буду посмо...
korotkov
25 апр 2007, 21:30
Форум: Проектирование БД и запросов
Тема: Работа со справочниками ... (филиалы)
Ответы: 9
Просмотры: 8405

2Merlin спасибо за ответы. примерно понятно, но в последнем посте ... это слишком для моего случая. объясню на примере, может я не совсем коректно задал вопрос, думал из типичной задачи найду решение своей. имеется программа коллекционирования объявлений привязанных к районам города (в лучшем случае...
korotkov
25 апр 2007, 16:54
Форум: Проектирование БД и запросов
Тема: Преобразовать три запроса в один, сбор статистики по таблице
Ответы: 11
Просмотры: 10003

пример можно!?

про SUM(CASE.....) ничего не понял что там суммировать? и как можно MAX c Count в одном запросе совместить?
korotkov
25 апр 2007, 16:52
Форум: Проектирование БД и запросов
Тема: Работа со справочниками ... (филиалы)
Ответы: 9
Просмотры: 8405

про такое решение "в лоб" я слышал, но оно не есть как бы это сказать ... универсальное что-ли, и не подходит в моем случае точно - у меня кол-во "филиалов" неизвестно, т.е. это не то что филиалы, а субъекты, которые собирают информацию для основной базы данных ;) а хочется чтобы информация в базе б...
korotkov
25 апр 2007, 15:12
Форум: Проектирование БД и запросов
Тема: Работа со справочниками ... (филиалы)
Ответы: 9
Просмотры: 8405

Работа со справочниками ... (филиалы)

Имеется база данных центральная, в ней имеется таблица справочник. Имеются удаленные филиалы, которые собирают информацию в центральную базу. Данные с филиалов заносятся в базу раз в ... сутки, приносятся "ногами" на носителях. В филиалах бывают ситуации внесения данных отсутствующих в таблице справ...
korotkov
25 апр 2007, 03:33
Форум: Проектирование БД и запросов
Тема: Преобразовать три запроса в один, сбор статистики по таблице
Ответы: 11
Просмотры: 10003

Преобразовать три запроса в один, сбор статистики по таблице

Имею таблицу tblRegions {ID, Parent, Description}, а также tblObjavas {ID, IDRegion, DateTime, ... IDState} По tblRegions строю дерево и в дополнительных полях хочу иметь статистику по tblObjavas для каждого IDRegion. Собираю статистику по таблице тремя запросами по каждой записи, получается медленн...
korotkov
10 авг 2005, 16:09
Форум: Общие проблемы
Тема: помогите с запросом ...
Ответы: 13
Просмотры: 10550

Тут идея нагрузить инсерт при вставке записи с событием, но при этом катастрофически разгрузить селект. Не хочется запутывать логику приложения, она и сама запутается :D И так работает тоже: create procedure SP_GetPoints(IDObject integer, DTStart timestamp, DTEnd timestamp, SActive integer, SDelete...
korotkov
10 авг 2005, 15:33
Форум: Общие проблемы
Тема: помогите с запросом ...
Ответы: 13
Просмотры: 10550

если ID в твоей системе выдаются последовательно. не последовательно, но имеется дата события, потому max(DateTime) Идея с твумя датами тебе не подошла? Она чуток не про то ... Ситуация такая: Имеется таблица точек с установленным оборудованием. Точка с оборудованием может находиться в нескольких с...
korotkov
10 авг 2005, 15:04
Форум: Общие проблемы
Тема: помогите с запросом ...
Ответы: 13
Просмотры: 10550

А диапазон-то куда делся? В твоей хп только "<=:DTStart" вижу. Диапазон на месте: ... where DateTime <= :DTEnd and State = 2 into :P_IDGame ... where DateTime<=:DTStart and State = 3 Т.е. я вывернул запрос: выбрал ВСЕ астивные IDGame, а затем оставил только, те у которых не было последней записи с ...
korotkov
10 авг 2005, 13:16
Форум: Общие проблемы
Тема: помогите с запросом ...
Ответы: 13
Просмотры: 10550

Так читабельнее create procedure p(DTStart timestamp, DTEnd timestamp) returns (P_IDGame integer) as begin for select distinct IDGame from tblPoints where DateTime <= :DTEnd and State = 2 into :P_IDGame do begin if(not exists(select first 1 IDGame from tblPoints where DateTime<=:DTStart and State = ...
korotkov
10 авг 2005, 13:13
Форум: Общие проблемы
Тема: помогите с запросом ...
Ответы: 13
Просмотры: 10550

Спасибо sag за направление, вот что требовалось: create procedure p(DTStart timestamp, DTEnd timestamp) returns (P_IDGame integer) as begin for select distinct IDGame from tblPoints where DateTime <= :DTEnd and State = 2 into :P_IDGame do begin if(not exists(select first 1 IDGame from tblPoints wher...
korotkov
09 авг 2005, 18:25
Форум: Общие проблемы
Тема: помогите с запросом ...
Ответы: 13
Просмотры: 10550

помогите с запросом ...

Имеется таблица истории движения оборудования (FireBird 1.52). create table tblPoints ( ID integer not null, DateTime timestamp not null, IDObject integer default 0, IDServer integer default 0, IDClient integer default 0, IDGame integer default 0, IDPosition integer default 0, State varchar(1) defau...