|
|
|
Хранимая процедура пожирает все ресурсы :'-(
|
|||
|---|---|---|---|
|
#18+
SQL Server 2000; 2xP-III 800 Есть некая хранимая процедура - Сальдо. При выполнении этой процедуры - процессоры загружены под 100% При этом другие пользователи работать с БД не могут (ни выборку не сделать, ни запись вставить в справочник) -подвисают нафиг! В sp Сальдо никаких блокировок нет, просто перелопачивается большое кол-во данных. Вопрос: Можно ли ограничить ресурсы для этой sp??? Т.е. отдать ей, например, 70% ресурсов, а остальные пустить на нужды нормальных юзеров??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 10:46:56 |
|
||
|
Хранимая процедура пожирает все ресурсы :'-(
|
|||
|---|---|---|---|
|
#18+
А может процедуру лучше оптимизировать... просто про ограничение на процедуру я не слышал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 11:27:22 |
|
||
|
Хранимая процедура пожирает все ресурсы :'-(
|
|||
|---|---|---|---|
|
#18+
Да оптимизировано по максимуму все! :((( Вместо 5 часов, теперь работает 30 мин. Но на эти 30 мин. вся работа останавливается! Как-то же все-таки должна нагрузка регулироваться!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 11:43:39 |
|
||
|
Хранимая процедура пожирает все ресурсы :'-(
|
|||
|---|---|---|---|
|
#18+
а что делает эта самая процедура? при обычном "перелопачивании" данных никаких замираний происходить не должно 8) - но с другой стороны MSSQL самостоятельно распределяет ресурсы системы для всех объектов (в т.ч. и для ХП), но не что не мешает переопределить их вручную. С чем-то подобным когда-то сталкивались - дык если сильно надо можно "порыть" (но опять же процедура может сама блокировать работу - не плохо было б на нее взглянуть) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 12:08:42 |
|
||
|
Хранимая процедура пожирает все ресурсы :'-(
|
|||
|---|---|---|---|
|
#18+
Возможно я ошибаюсь, но по моему нет ограничений на процессор или память для сессии. Поэтому могу посоветовать, еще оптимизировать запросы данные и т.д. Хотя может на многопроцессорном можно... Если не прав поправьте... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 12:09:33 |
|
||
|
Хранимая процедура пожирает все ресурсы :'-(
|
|||
|---|---|---|---|
|
#18+
навярняка работаете с курсором? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 13:57:50 |
|
||
|
Хранимая процедура пожирает все ресурсы :'-(
|
|||
|---|---|---|---|
|
#18+
а может есть смысл выгружать данные на время пересчета в отдельную бд, в которой нет протоколирования (simple model)... там считать, а затем загржать в рабочую версию БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 14:23:06 |
|
||
|
Хранимая процедура пожирает все ресурсы :'-(
|
|||
|---|---|---|---|
|
#18+
Попробуйте OPTION (MAXDOP 1) для особо продолжительных запросов использовать - освободите один процессор. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 14:26:21 |
|
||
|
Хранимая процедура пожирает все ресурсы :'-(
|
|||
|---|---|---|---|
|
#18+
MS SQL Server - это вам не Oracle, где можно ресурсы ограничивать уже более 10 лет. Если эта хранимая процедура "Сальдо" так тормозит сервер и если она вызывается только раз в день, то стоит подумать о том, чтобы вызывать её по расписанию после рабочего дня или ночью. А если она вызывается чаще и обязательно в течение рабочего дня, то значит её надо разбивать на несколько мелких хранимых процедур и запускать их по очереди. Будет хотя бы ясно, в каком месте тормоза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 15:32:58 |
|
||
|
Хранимая процедура пожирает все ресурсы :'-(
|
|||
|---|---|---|---|
|
#18+
Как вариант: инсталлируете экземпляр SQL Server'а, на котором только сальдо и считаете. Собственно, базу можно как linked server прикрутить или репликацию наладить. Ну а на процесс в Windows можно квоты накладывать по ресурсам... Шутка, конечно. Если серьезно, Вы не задумывались, почему такая проблема только у Вас возникла? Видимо, дизайн базы не совсем удачен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 16:14:33 |
|
||
|
Хранимая процедура пожирает все ресурсы :'-(
|
|||
|---|---|---|---|
|
#18+
"перелопачивается" - это считывается или записывается? Если считывается и допустимы "грязные чтения" - попробуйте добавить к имени каждой таблицы в запросе хинт with(nolock) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 18:50:10 |
|
||
|
Хранимая процедура пожирает все ресурсы :'-(
|
|||
|---|---|---|---|
|
#18+
DAO: А курсоры, что, действительно могут сожрать все ресурсы процессора (и поможет ли замена курсоров на циклы)? jimmers: Эта проблема не только у user13 Гнездин Петр: Бывает, что никаких блокировок нет, но процессор загружен под 100% и в это время никто другой не может работать Профессионалы! Разъясните ситуацию! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2002, 19:44:47 |
|
||
|
Хранимая процедура пожирает все ресурсы :'-(
|
|||
|---|---|---|---|
|
#18+
Только, что решил проблему. Пимерно тодже. Короче. Сделал курсор динамик, а в курсоре при вызове хп begin tran а после commit или roll - в зависимости от результата. Но при вызове основной хп - стояли тоже транзакции -убрал. Короче в транзакциях - обработка конкретной записи и только , конечно если это для вас подойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 13:07:04 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3384&tid=1819102]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
22ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 285ms |

| 0 / 0 |
