Форум: "Базы";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
ВнизНе могу произвести выгрузку в Excel большое количество записей. Найти похожие ветки
← →
galexis © (2004-12-16 09:24) [0]Выгружаю данные из базы в файл Excel. Небольшое количество записей выгружается нормально (до 600 записей). Большее - пишет не хватает памяти. Иногда пишет не может записать файл ib_sort в winnt\temp. Заподозрил, что мало отводится места под сортировку. Изменил параметр в ibconfig. Сделал 1000000000 (~1Гб) tmpdirectory. Теперь явно пишет, что нет места для файлов ib_sort. Что не так?
← →
Johnmen © (2004-12-16 10:05) [1]http://sql.ru/forum/actualthread.aspx?tid=47839
← →
galexis © (2004-12-16 10:33) [2]
> Johnmen ©
Прочитал, спасибо. Ошибка действительно такая была до изменения ibconfig. Но ответа так и не нашел. Свободного места на диске 15 Гб. Пробовал и два места указывать. Та же беда. Может tmp_directory ограничен максимальным размером и не может быть 1Гб?
← →
sniknik © (2004-12-16 10:39) [3]а ты что весь гиг в один экселевский файл заливаеш? а ограничение на запись не более 65535 строк в листе не нарушаеш?
или это не тот "файл Excel" что из мсофиса?
← →
Danilka © (2004-12-16 10:40) [4][3] sniknik © (16.12.04 10:39)
Дык, он говорит - больше 600 записей. Что-то тут не так. Ну не может, по моему скромному мнению, 601 запись весить гиг. :))
← →
Соловьев © (2004-12-16 10:42) [5]Интересно увидеть код выгрузки
И еще, у IBExpert можно данные выкинуть в Ексель, попробуй - выкинет?
← →
Александр Иванов © (2004-12-16 10:43) [6]Danilka © (16.12.04 10:40) [4]
256*600*256 = 37.5 Gb
:).
← →
galexis © (2004-12-16 10:47) [7]
> sniknik ©
На самом деле Excel тут не причем, до него еще не доходит дело. Строк там должно выгрузиться около 5тыс.
> Danilka ©
Гиг отведен для сортировки на сервере. А 600 записей весят около 500Кб. Выгрузка построчно идет. Строка - запись. после выгрузки 600 записей выскакивает ошибка - не хватает места для сортировки.
← →
galexis © (2004-12-16 10:49) [8]
> Александр Иванов ©
> 256*600*256 = 37.5 Gb
256 это что?
← →
sniknik © (2004-12-16 10:57) [9]>> 256*600*256 = 37.5 Gb
> 256 это что?
похоже 600 это записей,
первая(или вторая) 256 это количество допустимых полей в записи,
и вторая (или первая) 256 это наивное представление, что ексель не позволяет мемо полей а только короткие строки. ;о)) (максимальные значения)
← →
Johnmen © (2004-12-16 10:59) [10]>galexis ©
Покажи запрос. И какой компонент-держатель НД используется.
← →
galexis © (2004-12-16 11:09) [11]
> Johnmen
Компонент IBQuery. Запрос очень большой, из 42 таблиц. Возвращает около 40 тыс записей. По данным из этих записей строится другой, еще более больший запрос. Он возвращает одну запись и эта запись выгружается в excel. В итоге должно выгрузится в excel около 5 тыс записей.
← →
galexis © (2004-12-16 11:12) [12]Увеличил tmp_directory на одном диске до 2Гб, на втором до 1Гб. Создаются файлы ib_sort до 1,7Гб. Это ORDER BY так работает?
← →
sniknik © (2004-12-16 11:18) [13]> Запрос очень большой, из 42 таблиц.
"приджойненные" друг к другу? тогда да может быть, при джойне строится декартово произведение таблиц (каждое на каждое), что в результате от 42 таблиц получится... подумать страшно ;о)).
← →
sniknik © (2004-12-16 11:20) [14]http://cs.ifmo.ru/education/documentation/sql_kg/3-2-1.shtml
← →
Александр Иванов © (2004-12-16 11:21) [15]sniknik © (16.12.04 10:57) [9]
Это не наивное представление. Это просто доказательство, что даже для короткой строки мы получим довольно большие объемы информации.
← →
Johnmen © (2004-12-16 11:23) [16]>galexis ©
Видимо, сортируемые записи очень велики.
Надо оптимизировать запросы.
Написать ХП с реализацией получения конечных 5т.записей.
← →
galexis © (2004-12-16 11:24) [17]Вы правы. Места на диске не хватило. Все 15Гб занял!
← →
}|{yk © (2004-12-16 11:31) [18]Так должно же написать, что в принтере нет бумаги ;)
← →
Danilka © (2004-12-16 11:36) [19][6] Александр Иванов © (16.12.04 10:43)
Круто! Конечно, извратов всяких видел, но, надеюсь, в реальных задачах (да еще и выгрузка в эксель в таком виде) такое не встречается. :))
[17] galexis © (16.12.04 11:24)
Вобщем, почему проблема написано в [13] а как ее решить в [16]. :))
← →
sniknik © (2004-12-16 11:45) [20]Александр Иванов © (16.12.04 11:21) [15]
пез пояснений каждый понимает по своему. и потом ты лихо мегабайтам вес повысил... ;о)) а без этого и догадки будут неверными.
← →
Александр Иванов © (2004-12-16 11:50) [21]sniknik © (16.12.04 11:45) [20]
Да, с гигабайтами я переборщил :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.045 c