Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.16;
Скачать: CL | DM;

Вниз

Не могу произвести выгрузку в 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.035 c
14-1104241784
syte_ser78
2004-12-28 16:49
2005.01.16
выход из цикла


6-1098805375
denissoft
2004-10-26 19:42
2005.01.16
Количество отправленных полученных байт.


11-1085755191
Grey
2004-05-28 18:39
2005.01.16
AutoSize...


14-1103726378
NeyroSpace
2004-12-22 17:39
2005.01.16
DigiNet + Ati RADEON 9200 не работает


8-1096535757
WondeRu
2004-09-30 13:15
2005.01.16
Как создать OpenGL - сервер...