powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / большой файл сортировки
7 сообщений из 7, страница 1 из 1
большой файл сортировки
    #39116095
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Firebird 2.1.5 x32
Есть база 700 Мб
У клиента в темпе появляются файлы сортировки fb_sort_xxx по 1-1,5 Гб и даже есть один на 6Гб.
Это может быть такое в принципе, что файл сортировки много больше базы?
...
Рейтинг: 0 / 0
большой файл сортировки
    #39116114
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747,

я на курсах легко рисую запрос, генерирующий гигабайты в temp из базы employee.fdb (2.6 мб). Точно не помню, но примерно так

select e1.*
from employee e1, employee e2, employee e3, employee e4
order by e1.first_name

на размер файла сортировки влияет а) количество сортируемых записей, б) длина выдаваемой "записи", т.е. длина столбцов в select.
В вышеприведенном случае
42*42*42*42 записей = 3млн, макс. размер записи 135 байт, получаем 400 мб темп (как минимум). Если в запросе написать
select e1.*, e2.*
то получим уже 56 гиг. Развлекаться можно сколько угодно.

Получить аналогичные результаты можно на гораздо меньшей выборке, например, со столбцами Varchar(10000), если кому-то приспичило такое "на всякий случай", а хранится там максимум 100-200 байт. Все равно развернется при сортировке до 10к байт, а там уже умножаем на кол-во записей.
...
Рейтинг: 0 / 0
большой файл сортировки
    #39116125
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если считать что используются только "штатные" запросы, оптимизированные индексами?
...
Рейтинг: 0 / 0
большой файл сортировки
    #39116129
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747,

order by "оптимизируется индексами" только при определенных и достаточно жестких условиях. Внутри запрос может как угодно оптимизироваться, но если стоит PLAN SORT, то это сортировка в памяти/на диске однозначно.

Я же написал
select *
...
order by ...
то есть внутри запроса может быть что угодно, оно влияет только на количество записей, которое выбирается.

И опять же, штатный, не штатный - не надо писать select * в запросах с plan sort. Все это * полезет в файл сортировки.
...
Рейтинг: 0 / 0
большой файл сортировки
    #39116277
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747А если считать что используются только "штатные" запросы, оптимизированные
индексами?
Если так считать, значит тебе надо обращаться к врачу, а не сюда, поскольку твои "большие
файлы сортировки" в этом случае - чистая галлюцинация.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
большой файл сортировки
    #39116295
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvselect e1.*, e2.*
то получим уже 56 гиг. Развлекаться можно сколько угодно.
упс, фигню написал (умножил вместо сложения).
Разумеется, тут получится 800мб, ибо 135 байт записи плюс еще 135, и дальше умножить на 3млн записей.
Но если в этом примере будет даже не select e1.* а select один_столбец_varchar(10000) , то при тех же 3млн записей файл сортировки будет уже не менее 31 гиг.

В общем, смотреть, что делает клиент, какой в этот момент выдается запрос, есть ли в его плане plan sort (скорее всего есть, раз есть темп-файл fb_sort_xxx), и какие столбцы при этом выбираются (их макс. размер).
...
Рейтинг: 0 / 0
большой файл сортировки
    #39116298
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747,

сначала найди запрос который у тебя такой большой файл сортировки создаёт. Запули его сюда. 80% таких запросов можно переписать так чтобы уменьшить ширину выборки для сортировки
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / большой файл сортировки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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