LINUX.ORG.RU

посоветуйте идейку/реализацию

 


0

2

модераторам: перенесите, пжл, в девелопмент. спс.

речь об оракле если кто не заметил тег.

ситуация: есть сторед процедура которая обновляет статистику некоторых таблиц.

у меня эта процедура вызывается прямо из приложения после инсерта. приложение тормозит. вот я думаю, может какую таблицу завести и обновлять там строку, если нужно обновить статистику, а потом «по крону» эту табличку проверять и вызывать запрос, если нужно.

нормально ли так делать или есть более лучшие методы?

в общем совета просьбы псто у оракловодов. спасибо.

Перемещено beastie из talks

★★★★★

Последнее исправление: AndreyKl (всего исправлений: 4)

Всё зависит от того, насколько тебе актуальность этой статистики критична.

Если некритична, то действительно можешь из отдельного процесса раз в минуту регламентную задачу вызывать и обновлять изменённые за минуту.

Если же критична (к следующему запросу должна быть обновлена), то проще в приложении запрос в отдельный поток вынести.

monk ★★★★★
()
Ответ на: комментарий от anonymous

почему не триггер?

А триггер вызывается после транзакции INSERT или во время? Если во время, то не поможет (ведь блокировать всё равно будет).

monk ★★★★★
()

Я бы тоже использовал для таких целей DBMS_JOB

looper
()
Ответ на: комментарий от anonymous

там несколько таблиц, надо несколько триггеров. и самое важно, надо делать статистику после вставки в несколько таблиц. и не после каждой вставки а именно после массовой. (т.е. после конкретного запроса в приложении). так что триггер нас не спасёт я думаю. хотя кто его знает.

AndreyKl ★★★★★
() автор топика
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от Ja-Ja-Hey-Ho

да, так и сделал в итоге. это и имелось собственно ввиду под «кроном». я ж не ораклист, не знаю как там крон зовётся..

AndreyKl ★★★★★
() автор топика

у меня эта процедура вызывается прямо из приложения после инсерта. приложение тормозит.

Может саму процедуру стоит пооптимизировать? На статистику мне приходит на ум что-то вроде «update set total = total + 1 where key_field=2345». Такое тормозить не должно, а всё, что сложнее можно пересмотреть в сторону упрощения. У тебя часом не пересчитывается всё что можно, вместо конкретных параметров?

ziemin ★★
()
Ответ на: комментарий от ziemin

там оракловые функции сбора статистики для оптимизатора/планировщика.. вроде statgather что ли.. или как то так.. так тчо их не оптимизируешь.

AndreyKl ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.