|
Вывести Таблицу Значений в Табл Документ | ☑ | ||
---|---|---|---|---|
0
Black Dragon
19.12.14
✎
14:37
|
Доброго всем дня!
Есть запрос, который выдает более 2 млн строк выборки Результат нужно вывести во внешн файл либо как текст либо как таб док Есть ли штатные функции по сабжу? И не маловажно чтобы ОЗУ не сильно загружалась, ибо есть вылеты предприятия по выделению памяти! Всем спасибо! |
|||
1
Chai Nic
19.12.14
✎
14:37
|
ЗаписьТекста
|
|||
2
ДенисЧ
19.12.14
✎
14:39
|
А можно вопрос?
Нафейхоа такое нужно? |
|||
3
Chai Nic
19.12.14
✎
14:39
|
И не делать выгрузку запроса в таблицу значений, ибо нефиг - делать перебор выборки
|
|||
4
Black Dragon
19.12.14
✎
14:40
|
(1) пробовал, долго работает
Может возможно писать в файл не построчно а большими объемами? Например, если ЗаписьТекста.Записать(Буфер), где буфер это несколько строк, например 100, разделенных Символы.ПС ??? |
|||
5
ejikbeznojek
19.12.14
✎
14:41
|
(2) Распечатают, и читать будут)))
|
|||
6
Black Dragon
19.12.14
✎
14:41
|
(2) нужно для другой уч системы
|
|||
7
ejikbeznojek
19.12.14
✎
14:42
|
(0) Чтобы не держать в памяти большой табдок, сохрани эксельку и построчно выводи в неё)))
|
|||
8
ДенисЧ
19.12.14
✎
14:44
|
(6) Так пусть другая учсистема сама подключится и читает...
|
|||
9
Chai Nic
19.12.14
✎
14:44
|
(4) Ну так формируй большие куски, содержащие несколько строк.. в чем проблема?
|
|||
10
Black Dragon
19.12.14
✎
14:45
|
(3) это конечно сэкономит оперативу, не спорю, вывод хочется оптимизировать, потому и сабж такой!
Так по сабжу собственно, есть штатные механизмы ??? |
|||
11
Black Dragon
19.12.14
✎
14:45
|
(9) не пробовал так никогда, вот спросил, раз такое возможно, буду попробывать!
|
|||
12
ДенисЧ
19.12.14
✎
14:46
|
(10) ЗначениеВФайл
Только нужно на сервере 64бит делать. |
|||
13
ДенисЧ
19.12.14
✎
14:46
|
(11) "попробывать"
У тебя буква ё на клавиатуре западает... |
|||
14
Black Dragon
19.12.14
✎
14:47
|
(13) АГА_И_ПРОБЕЛ_СЛОМАЛСЯ
|
|||
15
vicof
19.12.14
✎
14:48
|
(14) И капс запал
|
|||
16
hhhh
19.12.14
✎
14:52
|
(10) ну, два миллиона - это детские размеры. Стоит ли париться по этому поводу?
|
|||
17
Black Dragon
19.12.14
✎
14:53
|
(16) как сказать, консоль запросов вылетает по памяти! при формировании ТабДок видимо!
|
|||
18
hhhh
19.12.14
✎
14:55
|
(17) два миллиона строчек? хм.
|
|||
19
Black Dragon
19.12.14
✎
14:55
|
2754386 строк
|
|||
20
sapphire
19.12.14
✎
14:58
|
(0) В текст выводить + лучше порциями
|
|||
21
antoneus
19.12.14
✎
15:00
|
Я, наверно, скажу сейчас глупость, но, может, старый добрый TextStream?
|
|||
22
Зеленый пень
19.12.14
✎
15:05
|
(4) "пробовал, долго работает" - думаю, проблема не в ЗаписиТекста, а в том, какие данные туда отправляешь.
Может, ты формируешь строку как Номенклатура.Код или СокрЛП(Контрагент) - конечно, будет долго. |
|||
23
Black Dragon
19.12.14
✎
15:17
|
(21) это через СОМ?
|
|||
24
Necessitudo
19.12.14
✎
15:19
|
ПостроительОтчета как-то получше будет.
|
|||
25
Black Dragon
19.12.14
✎
15:20
|
Объект TextStream обеспечивает доступ к текстовым файлам и содержимому текстовых потоков. Данный объект возвращается методами
OpenTextFile() [объект FileSystemObject]; CreateTextFile() [объект FileSystemObject]; OpenAsTextStream() [объект File]. Свойствами: StdOut,StdIn,StdErr [объект WshScriptExec] |
|||
26
antoneus
19.12.14
✎
15:40
|
(23) ага
|
|||
27
Black Dragon
19.12.14
✎
15:52
|
(20) это очень хорошо помогло:
19.12.2014 15:38:59Выведено 500 строк 19.12.2014 15:38:59Выведено 500 строк 19.12.2014 15:39:00Выведено 500 строк 19.12.2014 15:39:00Выведено 500 строк 19.12.2014 15:39:00Выведено 500 строк 19.12.2014 15:39:00Выведено 500 строк 19.12.2014 15:39:00Выведено 500 строк вот первая и посл строки: 19.12.2014 15:31:01 Выполняется формирование выходного документа... 19.12.2014 15:31:01Выведено 500 строк 19.12.2014 15:39:01Выведено 500 строк Текстовый файл ТаблицаСверки.txt успешно сохранен! 19.12.2014 15:39:01 Обработка завершена В итоге примерно 8 минут! |
|||
28
ИС-2
naïve
19.12.14
✎
15:59
|
(27) и как анализировать будешь?
Вывести ТЗ в Таб док быстрее всего через конструктор запроса с обработкой результата. В качестве источника указываешь ТЗ. Ну или построитель отчета |
|||
29
Бубка Гоп
19.12.14
✎
15:59
|
(27) 8 минут? жесть! попробуй увеличить порции, 500 строк - вообще копейки. хотя конечно что в строках - одному тс известно...
|
|||
30
Black Dragon
19.12.14
✎
16:03
|
ХЕХ! Это ж бубль гум!
это из лога строки! |
|||
31
Зеленый пень
19.12.14
✎
16:18
|
Пример.
ВремяНачала = ТекущаяДата(); ЗаписьТекста = Новый ЗаписьТекста("D:\test.txt", КодировкаТекста.ANSI); Для сч = 1 По 2000000 Цикл Если сч%1000 = 0 Тогда ОбработкаПрерыванияПользователя(); Состояние("Выведено строк: " + сч); КонецЕсли; ЗаписьТекста.ЗаписатьСтроку("строка " + сч + ": 123 123 15465465 123 123 15465465 123 123 15465465 123 123 15465465 123 123 15465465 123 123 15465465 123 123 15465465 123 123 15465465 "); КонецЦикла; ЗаписьТекста.Закрыть(); Сообщить("Затрачено секунд: " + (ТекущаяДата() - ВремяНачала)); Затрачено секунд: 25 Вывод: автор не там ищеттормоза. |
|||
32
Лефмихалыч
19.12.14
✎
16:24
|
(0) сохранить в xml||dbf||mdb||что угодно еще
|
|||
33
Лефмихалыч
19.12.14
✎
16:25
|
табличный документ с 2млн строк ни одному человеку во вселенной не может быть нужен. Он нужен какой-то программе, а программы могут всё читать
|
|||
34
Black Dragon
19.12.14
✎
16:29
|
(33) верно мыслите!
в др уч системе этот файл будет прочитан и проанализирован...меня это не касается, что с ним там будут делать, пусть хоть битовые маски накладывают) |
|||
35
Black Dragon
19.12.14
✎
16:34
|
(31) все тут нормаль! время правильно считаю:
Если СчСтр < КолЗаписейВФайл Тогда Если СчСтр = 1 Тогда Стр = "" + ДатаПериод + ";" + ВремяПериод + ";" + ТипДвижения + ";" + Выборка.Заказ.НомерЗаказа + ";" + КодТовара + ";" + КоличествоОборот + ";" + Выборка.Вычерки;// + ";" + Цена; Иначе Стр = Стр + Символы.ПС + "" + ДатаПериод + ";" + ВремяПериод + ";" + ТипДвижения + ";" + Выборка.Заказ.НомерЗаказа + ";" + КодТовара + ";" + КоличествоОборот + ";" + Выборка.Вычерки;// + ";" + Цена; КонецЕсли; Иначе Стр = Стр + Символы.ПС; ТекстДок.Записать(Стр); СчСтр = 0; Сообщить("" + ТекущаяДата() + "Выведено " + КолЗаписейВФайл + " строк"); КонецЕсли; |
|||
36
Лефмихалыч
19.12.14
✎
16:46
|
xml - онле
csv - для быдлокодеров |
|||
37
Бубка Гоп
19.12.14
✎
16:47
|
(36)
а dbf тогда для кого? подонкоф? |
|||
38
Лефмихалыч
19.12.14
✎
16:48
|
(37) для клюшкодавов
|
|||
39
Зеленый пень
19.12.14
✎
16:56
|
(35) Выборка.Заказ.НомерЗаказа - о чем и речь. Это тебе и дает тормоза. Сделай хотя бы замер производительности.
|
|||
40
Black Dragon
19.12.14
✎
17:09
|
(39) да все норм уже, как буфер записи прикрутился все стало ОК!
эти тормоза несущественны по сравнению с записью в файл построчно! а вот доп реквизиты объектов плохо влияют на производительность самого запроса! |
|||
41
Black Dragon
19.12.14
✎
17:17
|
у меня базы древние, от 8.1 идут, сейчас на 8.3.5 в режиме совместимости работаем
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |