|
|
|
Слишком долгий процесс транформации
|
|||
|---|---|---|---|
|
#18+
Есть выборка из хранимки, которая в коде преобразуется в DataSet c несколькими таблицами. Дальше эти данные нужно отобразить в word-документе. Есть примерно такой шаблон. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Внутри for-each данные вставляются в таблицы. Таблиц в DataSet 5, и кое-какие из них содержат всего одну строку, т.е. в принципе тут цикл не нужен, очевидно, нужно применить какой то другой оператор.. Все работает так как нужно, но уж очень медленно. Когда таблица была одна эта операция производилась нааамного быстрее. В чем может быть причина снижения быстродействия? и как эту трансформацию хоть немного можно ускорить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 13:25 |
|
||
|
Слишком долгий процесс транформации
|
|||
|---|---|---|---|
|
#18+
в датасете только таблицы? какого размера хмлник? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 14:23 |
|
||
|
Слишком долгий процесс транформации
|
|||
|---|---|---|---|
|
#18+
maXmoв датасете только таблицы? да в DataSet только таблицы. maXmoкакого размера хмлник? файл xml у меня не формируется, я пользуюсь GetXML() для DataSet. Для примера сформировала xml-файлик на 10 записей, получился размером 8Кб. трансформация этого файла происходила 40 секунд. А мне надо ориентироваться на 300-500 записей в этом файле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 15:29 |
|
||
|
Слишком долгий процесс транформации
|
|||
|---|---|---|---|
|
#18+
princes_kaда в DataSet только таблицы.тогда попробуй так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. princes_kaДля примера сформировала xml-файлик на 10 записей, получился размером 8Кб. трансформация этого файла происходила 40 секунд.да, это ненормально, ты уверена, что все эти 40 секунд уходят именно на трансформацию? Может, он его валидировать пытается? MSXML это любит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 15:47 |
|
||
|
Слишком долгий процесс транформации
|
|||
|---|---|---|---|
|
#18+
maXmoда, это ненормально, ты уверена, что все эти 40 секунд уходят именно на трансформацию? Может, он его валидировать пытается? MSXML это любит. ну..зависание процесса происходит в методе Transform. Да и пока в меня в выборке не появились дополнительные таблички все работало намного быстрее.. а что значит валидировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 16:13 |
|
||
|
Слишком долгий процесс транформации
|
|||
|---|---|---|---|
|
#18+
валидация – проверка правильности документа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 16:47 |
|
||
|
Слишком долгий процесс транформации
|
|||
|---|---|---|---|
|
#18+
спасибо :) а как обнаружить выполняется она или нет? и как ее можно отключить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 16:51 |
|
||
|
Слишком долгий процесс транформации
|
|||
|---|---|---|---|
|
#18+
она выполняется до трансформации – при парсинге входного документа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 17:04 |
|
||
|
Слишком долгий процесс транформации
|
|||
|---|---|---|---|
|
#18+
и после трансформации – при парсинге выходного документа, если парсинг имеет место. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 17:05 |
|
||
|
Слишком долгий процесс транформации
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы, "maXmo"! С вопросом валидации я разобралась, ни на этапе формирования входного xml, ни на этапе записи xml после трансформации валидации не происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2007, 11:21 |
|
||
|
Слишком долгий процесс транформации
|
|||
|---|---|---|---|
|
#18+
кстати, возможно, ты просто страшное преобразование написала, попробуй оставить инструкции только для одной из таблиц, потом – только для другой и т.д., возможно, это определит проблемный шаблон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2007, 13:28 |
|
||
|
Слишком долгий процесс транформации
|
|||
|---|---|---|---|
|
#18+
maXmoкстати, возможно, ты просто страшное преобразование написала, попробуй оставить инструкции только для одной из таблиц, потом – только для другой и т.д., возможно, это определит проблемный шаблон. да, ты прав, трансформация одной из таблиц занимает 75% всего времени. По шаблону там на выходе(в rtf-документе) таблица с довольно сложной структурой, куча строк разбиты на ячейки в хаотичном порядке.. и никуда от этого не деться. Может ли сложность результирующего xml влиять на длительность процесса? Данных кстати в ту табличку подсовывается немного, только условие одного из значений проверяется(по несколько раз в каждой строке) и в зависимости от этого значения выводится-не выводится картинка (галочка в чекбоксе). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2007, 15:07 |
|
||
|
Слишком долгий процесс транформации
|
|||
|---|---|---|---|
|
#18+
на длительность процесса влияет трудоёмкость трансформации. Не знаю, никогда не сталкивался с необходимостью повышения быстродействия хслт-преобразования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2007, 15:49 |
|
||
|
Слишком долгий процесс транформации
|
|||
|---|---|---|---|
|
#18+
princes_ka maXmoкстати, возможно, ты просто страшное преобразование написала, попробуй оставить инструкции только для одной из таблиц, потом – только для другой и т.д., возможно, это определит проблемный шаблон. да, ты прав, трансформация одной из таблиц занимает 75% всего времени. По шаблону там на выходе(в rtf-документе) таблица с довольно сложной структурой, куча строк разбиты на ячейки в хаотичном порядке.. и никуда от этого не деться. Может ли сложность результирующего xml влиять на длительность процесса? Данных кстати в ту табличку подсовывается немного, только условие одного из значений проверяется(по несколько раз в каждой строке) и в зависимости от этого значения выводится-не выводится картинка (галочка в чекбоксе). Да, вполне возможно это именно оно и есть, тем более что по вашим словам очень часто выполняется. Особенно если доступ идет по неоптимальному пути (например юзается что-нть типа //some_node[some_condition] там где без поиска "от корня и везде" можно прекрасно обойтись). Попробуйте оптимизировать пути доступа или, если логика позволяет, вынести эту проверку как можно выше из циклов (сохранять в переменную и применять в условиях проверку переменной). Если поможет - замечательно, если нет - продолжайте дальше поиски методом последовательного комментирования проверяемых кусков. Когда точно локализуете проблему - приводите пример кода, будем думать. ЗЫ Спросил себя "Интересно а профайлеры для xslt существуют ?" Погуглил - однако существуют. Заглянул в первый - платный :( Но вроде есть бесплатный триал ;) Если будете пробовать - пишите о результатах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2007, 17:25 |
|
||
|
|

start [/forum/topic.php?fid=14&msg=34898003&tid=1334112]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 10ms |
| total: | 149ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...