powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / temporary space limit exceeded sybase ... было такое?
7 сообщений из 7, страница 1 из 1
temporary space limit exceeded sybase ... было такое?
    #39990700
ТукТум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

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' - уже нескромный размер! Может быть быть упущены из виду такие-то другие настройки?


Очень буду рад советам.
...
Рейтинг: 0 / 0
temporary space limit exceeded sybase ... было такое?
    #39990781
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Улучшай свой запрос.
...
Рейтинг: 0 / 0
temporary space limit exceeded sybase ... было такое?
    #39990813
ТукТум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
UNLOAD
select
	t1.a
	,t1.a
	,t1.b
	,t1.c
	,t1.d
...
	,t2.k
from
	table_1 t1
left JOIN table_2 t2 ON
	(t1.a = t2.a)
	and (t1.b = t2.b)
	and (t1.c = t2.c)
 to 'e:\Dump\table_12.dat'


Модератор: не забывай про тэг SRC
t1 - 50 млн. записей
t2 - 3 млн. записей

поля a,b,c таблиц t1,t2 имеют индексы
Условие (t1.c = t2.c) равнозначно (t1.a = t2.a) and (t1.b = t2.b) , но могут быть не заполнены.

Кажется улучшать некуда , данные нужны все ...
...
Рейтинг: 0 / 0
temporary space limit exceeded sybase ... было такое?
    #39990981
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТукТум

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) , но могут быть не заполнены.
Индексы тут не так важны, но сделай свой запрос средне-маленького размера (ну примерно в 500К-1М записей) и прогони его под профайлером - убедись что эти индексы вообще используются.
...
Рейтинг: 0 / 0
temporary space limit exceeded sybase ... было такое?
    #39991051
ТукТум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 (каталог для временных файлов, связанных с работой сервера БД, если ограничить, - вылезут косячные запросы или..., потом увидим что вылезет ...)

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

Буду очень благодарен за совет.
...
Рейтинг: 0 / 0
temporary space limit exceeded sybase ... было такое?
    #39991548
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТукТум
Да, мы только что переехали на ASA 17 и пытаемся освоить "поляну"
Такие выгрузки нужны для рефакторинга таблиц.
Для этого есть утилита dbunload. Искать там-же где и все остальные утилиты SA. Она вам все выгрузит в текстовые файлы без всяких проблем. Она не сделает вам соединения таблиц, но зато сами таблицы - любого размера. Да еще и скрипт полностью воспроизводящий структуру базы создаст. Чрезвычайно удобно для выгрузки больших объемов из SA.

ТукТум

-c 40P -ch 70P (30% Операционной системе, остальное серверу БД, иначе все съест)
-dt d:\Temp (каталог для временных файлов, связанных с работой сервера БД, если ограничить, - вылезут косячные запросы или..., потом увидим что вылезет ...)

Если вы считаете для продуктового сервера этого недостаточно, то пожалуйста укажите какие параметры было бы желательно включить.
Для сервера лучше отдать все серверу. Или вы еще какие-то задачи собираетесь гонять на той-же машине? ОС сумела запуситить сервер БД? Остальным задачам места уже нет? Ну значит у вас получился максимально выделенный сервер БД - можно радоваться.
Если после этого БД тормозит - значит надо брать железо получше и давать БД памяти побольше.

И да, надеюсь ваш D:\Temp это действительно второй диск, а не раздел одного единственного физического диска? А то бессмысленно и вредно получится может...
...
Рейтинг: 0 / 0
temporary space limit exceeded sybase ... было такое?
    #39992150
ТукТум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,

Ок, большое спасибо за советы по выгрузке данных и настройке сервера БД!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / temporary space limit exceeded sybase ... было такое?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]