
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.52] |
![]() |
|
![]() | Данный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
На просьбу удалить из таблицы 1000 строк получаем загрузку ЦП 100% и 4 минуты ожидания (всего таблица содержит около 64 тыс. записей)
Оракл установлен на вполне приличной машине: проц - 2-х головый Xeon 2Ггц, 2Гб ОЗУ, ОС - OpenSuse. Кроме Оракла на машине ничего существенного не запущено. Совсем уж непривычная скорость работы. Подскажите, пожалуйста, в чем может быть проблема. |
Сообщ.
#2
,
|
|
|
Какие данные ?? Есть КЛОБЫ ? Есть ли триггеры на таблицах ?
Если есть триггеры, то он выполняет не 1000 удаления, а к примеру 10 000 ![]() |
Сообщ.
#3
,
|
|
|
Типы данных - Number(11, 0), Date, Varchar2 (самый большой варчар - 300 символов). Всего 28 полей. Имеется 3 триггера, но они на Insert и Update.
|
Сообщ.
#4
,
|
|
|
А запрос можно посмотреть на удаление ?
|
Сообщ.
#5
,
|
|
|
Конечно можно.
![]() ![]() ![]() delete from table_name А до этого на запрос ![]() ![]() delete from table_name where id < 1000 ушло 4 минуты. Число записей, попавших в этот диапазон, оказалось около 300. Т.е. на удаление одной записи уходит почти 1 сек. ![]() |
Сообщ.
#6
,
|
|
|
таблица во время удалениея не может чем-то еще блокироваться? на Delete не поставлено каскадного удаления или еще чего-то?
|
Сообщ.
#7
,
|
|
|
Блокировать ее некому. Каскадного удаления нет.
Еще такой нюанс. Изначально база стояла на машине с двухголовым 4-м пнем (3Ггц), и 1Гб ОЗУ. Затем вся схема и данные были импортированы на новую машину (xeon). Так вот на старом компе удаление проходит существенно быстрее: на полную очистку таблицы ушел 1 час (только что проверил). Вообще говоря, на новой машине тормоза наблюдаются не только с удалением (хотя удаление, пожалуй, самый яркий пример). |
Сообщ.
#8
,
|
|
|
Копайте настройки. Можно INIT базы посмотреть (желательно ДО и ПОСЛЕ)? Скорее всего траблы с распределением памяти.
|
Сообщ.
#9
,
|
|
|
Спасибо за участие.
Похоже я встрял надолго. ![]() |
Сообщ.
#10
,
|
|
|
Stoom Urchin
Можно INIT базы посмотреть ? |
Сообщ.
#11
,
|
|
|
Пытаюсь к сообщению прицепить файл и получаю в ответ
Цитата ОБНАРУЖЕНЫ СЛЕДУЮЩИЕ ОШИБКИ Вы не можете прикрепить этот тип файла |
Сообщ.
#12
,
|
|
|
ну так зазипуй/зарарь
|
Сообщ.
#13
,
|
|
|
Вот, пожалуйста.
Прикреплённый файл ![]() |
Сообщ.
#14
,
|
|
|
это ДО, или ПОСЛЕ, или ОДИНАКОВО ?
|
Сообщ.
#15
,
|
|
|
Извиняюсь... до и после чего?
|
Сообщ.
#16
,
|
|
|
А с местом на дисках все ок?
|
Сообщ.
#17
,
|
|
|
свободно > 100G
|
Сообщ.
#18
,
|
|
|
INIT какой базы?
1.Старой 2.Новой 3.Одинаковый для всех Потестить дисковую систему, может в ней проблемы. Фаловая система NTFS как я понимаю ? |
Сообщ.
#19
,
|
|
|
Инит одинаковый.
Файловая система - ext3. Цитата Marriage @ Потестить дисковую систему, может в ней проблемы. Как это сделать? Не думаю, что проблемы могут быть с этим, но все же... такой нюанс: старая база - Express Edition, новая - Enterprise. |
Сообщ.
#20
,
|
|
|
Как это сделать? - Та же сандра может это сделать. Только как я понимаю у Вас никсы... Поэтому не знаю. Если Init одинаковый тогда я даже не знаю что это может быть
![]() |
Сообщ.
#21
,
|
|
|
Мда, что-то совсем непонятное творится.
![]() Спасибо, за участие. ![]() |
Сообщ.
#22
,
|
|
|
Я кончно извиняюсь, а поле ID проиндексированно?
Такое видел, когда запросы работают по неиндексированным полям... У меня в базе тоже было так, пока не понял что торможу и в условии отобора стоит неидекисрованная дата. |
Сообщ.
#23
,
|
|
|
Индексы на месте.
Однако согласитесь, даже при их отсутствии удалять данные со скоростью 0.8 запись/сек - это чересчур. |
Сообщ.
#24
,
|
|
|
Цитата Stoom Urchin @ Индексы на месте. Однако согласитесь, даже при их отсутствии удалять данные со скоростью 0.8 запись/сек - это чересчур. У нашего одного сотрудника запрос, вернее выполнение функции работало ну примерно 300 сек., при условии, что на моем компе та же функция отрабатывала 0.6 сек.. Проблема ушла, когда ему переставили клента - коряво был поставлен до этого. |
Сообщ.
#25
,
|
|
|
альтернативное удаление можно попробовать: truncate table table_name
из предыдущих постов уловил, что был переезд базы с win на nix??! с аналогичной проблемой сталкивался. при одинаковых настройках на win работала в 10 раз быстрее, чем на nix. докапались... тормозил ora_dbw, а точнее не сам процесс сброса данных на физический носитель, а его работа в следствие неверной организации хранения самих данных. уже точно не вспомню, но вроде бы помогло след.: 1. снести все (да... к сожалению) 2. !!!аккуратно!!! поставить server (сам лично по документации выверял параметры по 10 раз) 3. воткнуть второй винт, где размещать пользовательские таблспайсы (системный каталог оставили на первом винте) 4. для определенных таблспайсов создать определенные роллбэк сегменты (в нашем случае для некоторых данных не нужен был rollback транзакции) 5. соответ. таблицы разместить в соотв. таблспайсах после этого стало работать сносно успехов |
Сообщ.
#26
,
|
|
|
shadow_tls С клиентом проблема не связана, т.к. с разных клиентов с разных машин тупит одинаково.
grgdvo Переезда с win не было. Изначальна ОС была Suse, теперь CentOs. Пытаемся настраивать - некоторые улучшения уже есть. |