|
temporary space limit exceeded sybase ... было такое?
|
|||
---|---|---|---|
#18+
Всем привет! sybase v. 17.0.10.6089 8 Гбт - оперативной памяти 300 Гбт - дисковой памяти Выполняю выгрузку "большой" таблицы через UNLOAD select ... to 'd:\out_table.dat' и почти сразу получаю SQL Error [13492] [54W05]: SQL Anywhere Error -1000: Temporary space limit exceeded temporary space limit exceeded sybase - сообщение, которое выдается при превышении размера временного пространства памяти. Сервер запущен с параметром -dt d:\temp , и размер временного файла для сессии растет до 50G (ограничил размер), в то время как файл выгрузки создается d:\out_table.dat и остается пустым до завершения работы запроса. Можно ли изменить поведение сервера и писать данные в файл выгрузки порциями? Есть ли вариант узнать какой объем временной дисковой памяти потребуется для выполнения запроса ? max_temp_space = '50G' - уже нескромный размер! Может быть быть упущены из виду такие-то другие настройки? Очень буду рад советам. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 11:14 |
|
temporary space limit exceeded sybase ... было такое?
|
|||
---|---|---|---|
#18+
Улучшай свой запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 13:58 |
|
temporary space limit exceeded sybase ... было такое?
|
|||
---|---|---|---|
#18+
White Owl, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Модератор: не забывай про тэг SRC t1 - 50 млн. записей t2 - 3 млн. записей поля a,b,c таблиц t1,t2 имеют индексы Условие (t1.c = t2.c) равнозначно (t1.a = t2.a) and (t1.b = t2.b) , но могут быть не заполнены. Кажется улучшать некуда , данные нужны все ... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 14:45 |
|
temporary space limit exceeded sybase ... было такое?
|
|||
---|---|---|---|
#18+
ТукТум t1 - 50 млн. записей .... Кажется улучшать некуда , данные нужны все ... Ух! Не, 50 миллионов для unload это перебор. Сейчас что-то не вижу в документации, но где-то читал что сервер делает полный датасет в памяти прежде чем начинает отдавать его в UNLOAD. Режь данные на куски если нужен именно unload. Впрочем можно попробовать сделать из запроса VIEW а потом натравить на него UNLOAD MATERIALIZED VIEW - оно более эффективно (должно быть). Если же есть возможность использовать клиента - то либо из dbisql используй команду OUTPUT, либо просто сделай клиента на любом языке который будет вытаскивать данные запроса. Тогда клиент будет получать строки по мере того как сервер их создаст и у тебя вообще будет полный контроль над файлом-результатом. А вообще, нафига такие объемы??? Переезжаешь на другой сервер? ТукТум поля a,b,c таблиц t1,t2 имеют индексы Условие (t1.c = t2.c) равнозначно (t1.a = t2.a) and (t1.b = t2.b) , но могут быть не заполнены. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 00:27 |
|
temporary space limit exceeded sybase ... было такое?
|
|||
---|---|---|---|
#18+
White Owl, да, условие по where тут решает проблему, спасибо. Но это вопрос по теме самого SQL и в рамках упомянутого sql выражения я задам отдельный вопрос по оптимизации (надеюсь другим новичкам как я, тоже будет интересно). Profiler - тоже серая зона, и есть вопрос отдельно. Да, мы только что переехали на ASA 17 и пытаемся освоить "поляну" Такие выгрузки нужны для рефакторинга таблиц. авторМожно ли изменить поведение сервера и писать данные в файл выгрузки порциями? Есть ли вариант узнать какой объем временной дисковой памяти потребуется для выполнения запроса ? max_temp_space = '50G' - уже нескромный размер! Может быть быть упущены из виду такие-то другие настройки? Что-то я задрал планку этими вопросами. Пропустим первые два. Сейчас у нас тестовый сервер стартует с параметрами: -c 40P -ch 70P -dt d:\Temp -c 40P -ch 70P (30% Операционной системе, остальное серверу БД, иначе все съест) -dt d:\Temp (каталог для временных файлов, связанных с работой сервера БД, если ограничить, - вылезут косячные запросы или..., потом увидим что вылезет ...) Если вы считаете для продуктового сервера этого недостаточно, то пожалуйста укажите какие параметры было бы желательно включить. Буду очень благодарен за совет. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 10:21 |
|
temporary space limit exceeded sybase ... было такое?
|
|||
---|---|---|---|
#18+
ТукТум Да, мы только что переехали на ASA 17 и пытаемся освоить "поляну" Такие выгрузки нужны для рефакторинга таблиц. ТукТум -c 40P -ch 70P (30% Операционной системе, остальное серверу БД, иначе все съест) -dt d:\Temp (каталог для временных файлов, связанных с работой сервера БД, если ограничить, - вылезут косячные запросы или..., потом увидим что вылезет ...) Если вы считаете для продуктового сервера этого недостаточно, то пожалуйста укажите какие параметры было бы желательно включить. Если после этого БД тормозит - значит надо брать железо получше и давать БД памяти побольше. И да, надеюсь ваш D:\Temp это действительно второй диск, а не раздел одного единственного физического диска? А то бессмысленно и вредно получится может... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2020, 18:17 |
|
|
start [/forum/topic.php?fid=55&tid=2009565]: |
0ms |
get settings: |
16ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
152ms |
get tp. blocked users: |
2ms |
others: | 392ms |
total: | 635ms |
0 / 0 |