![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
База FB тормозит [D7, FB 1.5]
Ярослав © (2005-06-01 07:54:00)Подскажите с какой частотой следует собирать статискику индексов, и перекомпилировать ХП.
Есть небольшая БД примерно 30МБ в таблицах примерно по 40000-60000 записей, и вот она переодически начинает тормозить, после сбора статистики индексов и перекомпиляции ХП и триггеров все нормально, но если раньше это приходилось делать раз в месяц а то и реже, то теперь каждую неделю... не слишком ли часто?
В базе давольно интенсивно используеться один запрос для которого создана псевдо временная таблица, т.е. в одну транзакцию перед выполнением действий в нее добавляются записи а по окончании запроса удаляются из нее, а записей добавляется в нее довольно много.
Может она как то влиять на все?
stud (2005-06-03 17:26:00) [21]тут сложно чтолибо сказать, т.к. не понятна структура хранимых данных и порядок оформления документов
вп (2005-06-03 17:22:00) [22]А вообще я спроси это.. :-)
> вп (03.06.05 13:09) [18]
> Таблица Л/с
> Л/с Вх Оплата начисленно Исх
> 100 1,20 5,00 10,00 6,20
>
> Причем начисленно: по 1-й группе 2,00 по 2-й 3,00 по 3-й
> 5,00
> Нужно получить оборотку:
> л/с Вх Оплаченно Начисленно Исх
> Группа 1
> 100 1,20 5,00 2,00 -1,80
> ...
> Итого по группе
> ГРуппа 2
> 100 0,00 0,00 3,00 3,00
> ...
> Итого по группе
> Группа 3
> 100 0,00 0,00 5,00 5,00
> ...
> Итого по группе
>
> Итого по организации
> Как это получить запросом/ХП ?
вп (2005-06-03 17:17:00) [23]Учитывается.. Но ты спутал платежку с обороткой... И это не бардак... Ребенка по возрасту могут перевести в другую группу, родители попросили (напримр, с 10-часовой на 12-ти часовую - не могут раньше забрать..А это занчит, что возрастает цена дня (ребенок не только обедает, но и ужинает)).. И т.д. Конечно, если при переводе открывать новый л/с - проблем нет...Но.. это не удобно...По одной простой причине... Платят в течении месяца, а табеля дают - в конце (сколько дней ребенок посещал ту или иную группу)..Потому и разносят оплату по пачкам на л/с... Все это оправдано...Да и напечатать ОДНУ платежку или ДЕСЯТЬ - разница большая.. хотя я и преувеличил.. но..
stud (2005-06-03 16:44:00) [24]если ребенок перешел в другую группу - значит по идее нужно либо доплачивать, либо еще чего.
либо при выписывании платежки добавить в базу, к какой группе она относится
stud (2005-06-03 16:42:00) [25]
> а ребенок может "болтаться" по разным группам
непонятно конечно, организационный бардак программными средствами не разруливается.
платежка привязана к л/с, но сумма платежа зависит от того где находится (находился) ребенок? если да - значит на этапе выписки платежки можно однозначно определить в какой группе находится ребенок
у тебя же учитывается в какой группе находится ребенок?
вп (2005-06-03 16:20:00) [26]Группа детского сада.. Ясельная №1 10 часовая, Средняя № 2 12 часовая...Санаторные группы и тд.
stud (2005-06-03 16:09:00) [27]
> Т.е. оплата идет НА Л/С, а не на группу
что вообще такое ГРУППА? что она характеризует, что ее необходимо отображать в очете?
Sergey13 (2005-06-03 15:51:00) [28]2 [24] вп (03.06.05 14:57)
Огроворюсь сразу. Я не утверждаю, что то что я говорю - истина. Просто то что мне в голову пришло, а она у меня занята сейчас другим. 8-)
Я же говорил тебе про пред/пост оплату. Это надо учитывать естественно. Не пойдет так не пойдет.
Я не принципиальный противник ТЕМПов. Просто пытался дать полезные (надеюсь) советы. Не получилось - жаль.
Я отключаюсь.
вп (2005-06-03 14:57:00) [29]А входящий остаток ? Остаток то "висит" на л/с...И как разнести платеж по разным группам, если ты еще даже не занешь, где, в какой группе был этот л/с ?
Sergey13 (2005-06-03 14:49:00) [30]2[22] вп (03.06.05 14:35)
> И ему однохерственно
Но если тебе не так же, ты вполне можешь разнести платеж по разным группам и группировать по реквизиту (составному) л/с-группа. Вот тебе и разные л/с фактически.
вп (2005-06-03 14:35:00) [31]Суть в чем.. За ребенком числится № лицевого.. Родителям дается платежка, с №=№ л/с... И ему однохерственно, в какой группе ребенок был.. Ему дали: "Заплати 15,60", он(родитель) и платит... Но в оборотке привязка идет к л/с, а ребенок может "болтаться" по разным группам.. При чем в течении расчетного периода... Оплата - в таблице оплат, по пачкам и л/с.. Т.е. оплата идет НА Л/С, а не на группу..Я в данном варианте использую для показа оплаты и входящего ту группу, которая была последней в предыдущем периоде..Но есть вариант, когда в табеле посещаемости перевод идет с первого дня следующего периода... И как тут можно обойтись без ТЕМП-таблицы ? не представляю..Вот если бы при переводе давался новый Л/С - тогда бы этой проблемы не было...Но тогда - куча платежек лишних... Да и не очень удобно...Так все-таки л/с хочешь не хочешь, а запоминаешь... Табель дается в бумажном виде "от руки" написанному...
Sergey13 (2005-06-03 13:36:00) [32]2[18] вп (03.06.05 13:09)
А почему во 2 и 3 группах ВХ=0? Если оплата идет вперед, то остаток дожен переноситься. Если оплата после, то почему не держать ее отдельно для каждой группы? Или я не въехал в постановку?
ЗЫ: Вообще не дурно бы свою ветку завести наверное, раз пошло обсуждение другого вопроса.
stud (2005-06-03 13:16:00) [33]в общем-то обычная группировка, а хп это реализуется элементарно.
stud (2005-06-03 13:15:00) [34]а где взять по какой группе начислено??????
вп (2005-06-03 13:09:00) [35]Таблица Л/с
Л/с Вх Оплата начисленно Исх
100 1,20 5,00 10,00 6,20
Причем начисленно: по 1-й группе 2,00 по 2-й 3,00 по 3-й 5,00
Нужно получить оборотку:
л/с Вх Оплаченно Начисленно Исх
Группа 1
100 1,20 5,00 2,00 -1,80
...
Итого по группе
ГРуппа 2
100 0,00 0,00 3,00 3,00
...
Итого по группе
Группа 3
100 0,00 0,00 5,00 5,00
...
Итого по группе
Итого по организации
Как это получить запросом/ХП ?
Johnmen (2005-06-03 12:17:00) [36]>вп (03.06.05 11:51) [16]
Напрасно. Здесь уже говорили о ХП.
А во-вторых, проблема "удвоены(утроены и тд)" таковой не является. Запросы надо грамотно писать...:)
вп (2005-06-03 11:51:00) [37]
> Zacho © (03.06.05 10:46) [15]
> Ярослав (03.06.05 6:41) [14]
>
> Возможно. Но всё-таки думаю, что можно было перепроектировать
> БД так, что бы и временных таблиц не было, и ХП быстро работали.
>
> Ты "мусор" убирать пробовал ? Как результаты ?
Я конечно, извиняюсь.. Но как решить такую задачу без временной таблицы(учет оплаты посещения в д/с)... Есть перечень л/с, содержащий: остаток на начало периода, оплата, начисленно, выходной остаток..
И есть движение: движение об оплате, и движение по посещениям.. Причем по посещениям имеет такую структуру (примерно):
л/с, количество дней, ГРУППА, РЕЖИМ... Два последних выделил поодной простой причине - в течении рабочего периода ГРУППА и РЕЖИМ могут довольно произвольно менятся (перевод из одной грппы в другую).. Нужно получить оборотку в виде:
Группа
Л/с сальдо_Вх дней начисленно льготы оплачено исх_дт исх_кт
Т.е. Л/с может мелькать в разных группах.. И для разных групп - разная цена дня.. Сответсвенно, начисленно будет разным.. НО ВСЕ ЭТ ОПО РАЗНЫМ ГРУППАМ ДОЛЖНО "ЛЕЧЬ" НА ИСХОДЯЩИЙ ОСТАТОК Л/С !
Если просто обьединить - будут удвоены(утроены и тд) как входящие так и исходящие остатки... Я другого рещения, как анализ данных в промежуточной таблице не придумал...
Zacho (2005-06-03 10:46:00) [38]Ярослав (03.06.05 6:41) [14]
Возможно. Но всё-таки думаю, что можно было перепроектировать БД так, что бы и временных таблиц не было, и ХП быстро работали.
Ты "мусор" убирать пробовал ? Как результаты ?
Ярослав (2005-06-03 06:41:00) [39]>> Desdechado © (02.06.05 13:36) [12]
>> Zacho © (02.06.05 16:09) [13]
Запрос этот как раз и состоит из нескольких ХП (если все читать внимательно)
До использования временной таблицы как раз и было на основе For Select, замены на временную таблицу все стало (как я уже писал выше) в сто раз быстреекак минимум.
Zacho (2005-06-02 16:09:00) [40]Desdechado © (02.06.05 13:36) [12]
Поддерживаю :)
За 7 лет работы с IB/FB/Ya у меня ни разу не было действительной необходимости во "временных" таблицах.