Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 1
Регистрация: 05.02.2015
Сообщений: 7
Interbase

Медленная обработка запроса

05.02.2015, 21:26. Показов 1978. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста, кто знает. У меня FB 2.5, приложение С#.net 2013 , использую последний провайдер FirebirdSql.Data.FirebirdClient.dll 4.6.1 . Если с помощью IBExpert с того же компьютера в локальной сети, этот запрос отрабатывается около 100 ms, а из приложения 15 секунд. Результат запроса около 1000 записей из пяти легких полей. Пробовал ридером и адаптером, результат одинаков, хотя локально из того же приложения, из тоже базы, тот же запрос выполняется мгновенно. Смотрел в отладчике, насколько я понял, запрос отправляется на сервер и выполняется на сервере мгновенно, а проблема в получении результата запроса, то есть долго обрабатывается DataTable.Load() , такое впечатление, что каждая запись тянется по очереди, то есть прямым перебором. Не могу найти подробного описание FirebirdSql.Data.FirebirdClient.dll , сам видел там много всего есть, может мне нужно по другому организовать получение данных, а времени разбираться нет, проект горит. Задавал этот вопрос на sql.ru там полностью проверили мою базу, все ОК! Проблема в обработке результата запроса, вот как я это делаю:
using (FirebirdSql.Data.FirebirdClient.FbConne ction con = new FirebirdSql.Data.FirebirdClient.FbConnec tion(connect))
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
            {
                con.Open();
                FirebirdSql.Data.FirebirdClient.FbTransaction fbTransaction = con.BeginTransaction();
 
                FirebirdSql.Data.FirebirdClient.FbCommand com = new FirebirdSql.Data.FirebirdClient.FbCommand(zapr, con, fbTransaction);
                
                using (FirebirdSql.Data.FirebirdClient.FbDataReader fdr = com.ExecuteReader())
                {
 
                    dt.Load(fdr, LoadOption.OverwriteChanges);
                    fdr.Close();
                }
 
                con.Close();
                fbTransaction.Dispose();
            }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.02.2015, 21:26
Ответы с готовыми решениями:

Медленная обработка данных - как ускорить?
Привет всем ! Есть такой код Вкратце - из текстового файла вытаскиваются данные и пишутся в локальную БД (таблицу) SQLite Что...

Обработка разультатов запроса
Подключился к базе PostgreSql, создал запрос, получил таблицу в DataGridView. Можно ли теперь с этой таблицей работать как в Excel? Что я...

Обработка запроса к WEB странице
Подскажите, пожалуйста, что не так! Пишу на C#, многие страницы, по ниже приведённому запросу, отвечают ОК, но некоторые выдают ошибку...

2
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
06.02.2015, 13:59
Chatlaninn, а зачем ты делаешь чтение в транзакции? Транзакция нужна для того, чтобы можно было откатить взаимосвязанные изменения вносимые в БД, а тут обычная выборка. Также транзакция требует временных ресурсов на её создание (не 15 секунд конечно, но всё же)
С Firebird конечно работать мне не приходилось, но подозреваю, что классы там аналогичны классам SQL. Поэтому мне не совсем понятно почему для заполнения таблицы используется ридер, а не адаптер.

Также не понятно, что с запросом (текст не приведён), может дело в нём.

Ещё как вариант - замедление может быть вызвано повышенным интересом антивируса к приложению
0
0 / 0 / 1
Регистрация: 05.02.2015
Сообщений: 7
07.02.2015, 07:41  [ТС]
Запрос простой, примитивный, как и многие другие, а работают все одинаково. Через Адаптер тоже самое происходит, время выполнения запроса напрямую зависит от количества возвращаемых записей. Транзакции в этом случае начал использовать, по рекомендации многих в инете, но это никак на скорость не повлияло.

Добавлено через 3 минуты
Антивирус пробовал отключать. Проблема в DataTable.Load(), я уже пробовал перед лоад создавать поля таблицы, все тоже самое, скорость отработки лоад прямо пропорциональна количеству получаемых записей. Может быть есть иной способ получить таблицу быстрее???

Добавлено через 12 часов 53 минуты
УРА!!! Я балбес, проблема решена!!! У меня в строке подключения, которую я писал около 5 лет назад, а создается она конечно динамически Packet Size=1024 , я его поменял как и на сервере Packet Size=8192. Теперь 22 000 записей за 1.5 секунды, что полностью устраивает, то есть это журнал операций за целый год может выводиться так быстро.
Всем огромное спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.02.2015, 07:41
Помогаю со студенческими работами здесь

Обработка результата запроса из MS SQL SERVER
Добрый день. Потихоньку делал для себя проект. Столкнулся с проблемой. Когда я возвращаю результат запроса из БД и преобразую значение в...

Обработка post запроса на стороне сервера
есть клиент и сервер! клиент посылает на сервер get запрос в котором содержаться единый пароль доступа к серверу, сервер парсит запрос,...

Медленная работа запроса
1С 7.7 есть регистр остатков "ОстаткиТоваров" с измерением "Товар" и ресурсом "ОстатокТовара". есть таблица значений -...

медленная обработка печати
Почему если на Windows 7 поставить драйвера на принтер от Windows Vista скорость печати становится медленная, то есть приходится долго...

Медленная обработка файла
Добрый вечер. Подскажите пожалуйста, можно ли как-нибудь ускорить обработку файла? Очень медленно идет - хотя озу 60% - 24 ГБ съедает. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru