powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Установка параметра ARITHABORT ON по OLE DB технологии
16 сообщений из 16, страница 1 из 1
Установка параметра ARITHABORT ON по OLE DB технологии
    #38219888
tihoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня суток! Программирую на VB. Столкнулся со следующей проблемой - написал код считывания, обработки БД с использованием OledbDataReader - в итоге 20000 записей обрабатывает час. Здесь на форуме мне предложили оптимизировать код. Я же поискал в интернете - нашел на msdn , что по технологии OLE DB не включается Arithabort. На англоязычных сайтах говорят, что без него очень медленно работает ридер. Вопрос: как включить этот параметр на ON, если подключаюсь, создаю БД по OLE?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
        Dim db As String = TextBox1.Text & TextBox2.Text

            Dim adoxCat As ADOX.Catalog = New ADOX.Catalog()
            adoxCat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db & ";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Password=")

        Dim cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db & ";Jet OLEDB:Database Password=")
        cn.Open()

        Using Command As New SqlCommand("SET ARITHABORT ON", cn)
            Command.CommandType = CommandType.Text
            Command.ExecuteNonQuery()
        End Using



В интернете нашел, как установить с помощью SqlCommand. Но, естественно, пишет: невозможно преобразовать объект типа оле в скл. Замена с SqlCommand на OleDbCommand ничего не дала - оле команда не знает SET.

Модератор: Тема перенесена из форума "Visual Basic".
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38219989
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tihoh, Arithabort относится к MS SQL. Ты используешь Access. Ищи причину медленной работы в другом месте.
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38220027
tihoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile, спасибо, буду искать в другом месте. А может быть, что ридер долго работает с Access? Потому что дело в нем, это точно (может я его как-то неоптимально использую). Когда у меня тысяч пять записей - работает максимум 5 секунд.
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38220328
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tihoh, посмотрел твой код из темы Многократный Update - открытие большего числа таблиц невозможно . У тебя данные читаются несколькими ридерами и на каждой итерации цикла еще делается update. Ты серьезно думаешь что в первую очередь нужно reader винить, а не свой код? :)

1) Все необходимые данные можно наверняка получить сразу с помощью JOIN-ов.

2) Возможно нужно добавить индексы на поля которые используются в WHERE части

3) Access позволяет писать сложную логику в самой БД. Подумай можно ли перенести часть логики в саму БД, чтобы выполнять меньше операций на стороне клиента.

4) Также можно подумать о постраничном получении данных и пакетном их обновлении. То есть получили (условно!) 100 записей. Обработали, подготовили 100 update-ов, выполнили. Получили следюущие 100 записей и т.д.
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38220353
tihoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile, спасибо за советы! Буду пробовать.
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38223101
tihoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile, я посмотрел немного в интернете. Не стал создавать новую тему. Вопрос на моем этапе - возможно ли сделать один запрос: Update поля ошибок, где с помощью Select взять две связанные строки из одной таблицы (возможно с помощью JOIN), в этом запросе его же обработать по условиям (заполнены ли параметры, совпадают). Думаю, понятно. Просто нигде не сталкивался с такими запросами, сколько ни искал. Если это в принципе возможно, то буду делать упор на это.
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38223201
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tihoh, можно, но бывают ньюансы. Чтобы ответить точнее нужно знать структуру данных и необходимый результат.
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38223331
tihoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile, структуру приложил. Поочередно проверяем строки. В строке смотрим поле Parther, потом ищем строку с таким string2.KKS=string1.Partner. Потом проверяем на string2.Partner=string1.KKS и еще несколько параметров. Вот и все.
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38223360
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tihoh, прочитай как следует задавать подобные вопросы и оформи его с соответствии с рекомендациями. Обрати особое внимание на пункт №13. Кроме того не забывай что это форум по .NET, а не Access.
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38223394
tihoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile, хорошо.
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38223538
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tihohbazile, структуру приложил.

Это в структуре таблицы так и хранятся текстовые данные (всякие "АВАР ТС" и т.д.) в каждой из 20000 записей?
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38223740
tihoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallaris, да. Где-то пустые - заполняю как "". Пара числовых полей - AWE и BST_NR. На самом деле записей около 70000 тыс. Просто где пустые - я не смотрю, а также смотрю сначала где X_Pos заполнено (20 тыс.), а потом Y_Pos - вторые 20 тыс. Итого более двух часов :(
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38223772
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tihohPallaris, да. Где-то пустые - заполняю как "". Пара числовых полей - AWE и BST_NR.

В хороших, годных таблицах почти все поля - числовые, и ссылаются на справочники, в которые загоняются строки. Предания говорят, что базы, организованные по такому принципу, весят меньше, и запросы на них выполняются быстрее.
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38224118
tihoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallaris, а где я могу посмотреть информацию по ним, как создавать? Гугл на запросы по справочникам на таблицы - выдает справочники и учебники по таблицам, собственно.
Это должна быть таблица отдельная? Просто различных параметров как KKS, например, у меня тоже не так мало - тысяч 15-20 (но согласен - числа проще обрабатывать компу). То есть будет таблица, где будет столбец, где каждое число будет соответствовать каким-то KKS. Сначала я в процессе обработки оперирую числовыми данными, потом в конце - заполняю текстовыми?
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38224154
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tihoh,

Справочник - это таблица, в котором название твоего Kks соответсвует числу. Стало быть, в таблице с данными ты хранишь число, а не строку. А уже при выводе инфы пользователю показываешь имя, а не код
...
Рейтинг: 0 / 0
Установка параметра ARITHABORT ON по OLE DB технологии
    #38224158
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитать - вбей в гугле "проектирование реляционных баз данных"
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Установка параметра ARITHABORT ON по OLE DB технологии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]