|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
Всем доброго дня суток! Программирую на VB. Столкнулся со следующей проблемой - написал код считывания, обработки БД с использованием OledbDataReader - в итоге 20000 записей обрабатывает час. Здесь на форуме мне предложили оптимизировать код. Я же поискал в интернете - нашел на msdn , что по технологии OLE DB не включается Arithabort. На англоязычных сайтах говорят, что без него очень медленно работает ридер. Вопрос: как включить этот параметр на ON, если подключаюсь, создаю БД по OLE? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
В интернете нашел, как установить с помощью SqlCommand. Но, естественно, пишет: невозможно преобразовать объект типа оле в скл. Замена с SqlCommand на OleDbCommand ничего не дала - оле команда не знает SET. Модератор: Тема перенесена из форума "Visual Basic". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2013, 10:52 |
|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
tihoh, Arithabort относится к MS SQL. Ты используешь Access. Ищи причину медленной работы в другом месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2013, 11:34 |
|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
bazile, спасибо, буду искать в другом месте. А может быть, что ридер долго работает с Access? Потому что дело в нем, это точно (может я его как-то неоптимально использую). Когда у меня тысяч пять записей - работает максимум 5 секунд. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2013, 11:47 |
|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
tihoh, посмотрел твой код из темы Многократный Update - открытие большего числа таблиц невозможно . У тебя данные читаются несколькими ридерами и на каждой итерации цикла еще делается update. Ты серьезно думаешь что в первую очередь нужно reader винить, а не свой код? :) 1) Все необходимые данные можно наверняка получить сразу с помощью JOIN-ов. 2) Возможно нужно добавить индексы на поля которые используются в WHERE части 3) Access позволяет писать сложную логику в самой БД. Подумай можно ли перенести часть логики в саму БД, чтобы выполнять меньше операций на стороне клиента. 4) Также можно подумать о постраничном получении данных и пакетном их обновлении. То есть получили (условно!) 100 записей. Обработали, подготовили 100 update-ов, выполнили. Получили следюущие 100 записей и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2013, 13:54 |
|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
bazile, спасибо за советы! Буду пробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2013, 14:09 |
|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
bazile, я посмотрел немного в интернете. Не стал создавать новую тему. Вопрос на моем этапе - возможно ли сделать один запрос: Update поля ошибок, где с помощью Select взять две связанные строки из одной таблицы (возможно с помощью JOIN), в этом запросе его же обработать по условиям (заполнены ли параметры, совпадают). Думаю, понятно. Просто нигде не сталкивался с такими запросами, сколько ни искал. Если это в принципе возможно, то буду делать упор на это. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 11:06 |
|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
tihoh, можно, но бывают ньюансы. Чтобы ответить точнее нужно знать структуру данных и необходимый результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 11:46 |
|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
bazile, структуру приложил. Поочередно проверяем строки. В строке смотрим поле Parther, потом ищем строку с таким string2.KKS=string1.Partner. Потом проверяем на string2.Partner=string1.KKS и еще несколько параметров. Вот и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 12:50 |
|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
tihoh, прочитай как следует задавать подобные вопросы и оформи его с соответствии с рекомендациями. Обрати особое внимание на пункт №13. Кроме того не забывай что это форум по .NET, а не Access. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 13:07 |
|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
bazile, хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 13:29 |
|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
tihohbazile, структуру приложил. Это в структуре таблицы так и хранятся текстовые данные (всякие "АВАР ТС" и т.д.) в каждой из 20000 записей? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 14:45 |
|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
Pallaris, да. Где-то пустые - заполняю как "". Пара числовых полей - AWE и BST_NR. На самом деле записей около 70000 тыс. Просто где пустые - я не смотрю, а также смотрю сначала где X_Pos заполнено (20 тыс.), а потом Y_Pos - вторые 20 тыс. Итого более двух часов :( ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 16:17 |
|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
tihohPallaris, да. Где-то пустые - заполняю как "". Пара числовых полей - AWE и BST_NR. В хороших, годных таблицах почти все поля - числовые, и ссылаются на справочники, в которые загоняются строки. Предания говорят, что базы, организованные по такому принципу, весят меньше, и запросы на них выполняются быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 16:34 |
|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
Pallaris, а где я могу посмотреть информацию по ним, как создавать? Гугл на запросы по справочникам на таблицы - выдает справочники и учебники по таблицам, собственно. Это должна быть таблица отдельная? Просто различных параметров как KKS, например, у меня тоже не так мало - тысяч 15-20 (но согласен - числа проще обрабатывать компу). То есть будет таблица, где будет столбец, где каждое число будет соответствовать каким-то KKS. Сначала я в процессе обработки оперирую числовыми данными, потом в конце - заполняю текстовыми? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 21:50 |
|
Установка параметра ARITHABORT ON по OLE DB технологии
|
|||
---|---|---|---|
#18+
tihoh, Справочник - это таблица, в котором название твоего Kks соответсвует числу. Стало быть, в таблице с данными ты хранишь число, а не строку. А уже при выводе инфы пользователю показываешь имя, а не код ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 23:10 |
|
|
start [/forum/topic.php?fid=20&fpage=168&tid=1404848]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 329ms |
total: | 469ms |
0 / 0 |