Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Помогите пожалуйста, кто знает. У меня FB 2.5, приложение С#.net 2013 , использую последний провайдер FirebirdSql.Data.FirebirdClient.dll 4.6.1 . Если с помощью IBExpert с того же компьютера в локальной сети, этот запрос отрабатывается около 100 ms, а из приложения 15 секунд. Результат запроса около 600 записей из пяти легких полей. Пробовал ридером и адаптером, результат одинаков. Смотрел в отладчике, насколько я понял, запрос отправляется на сервер и выполняется на сервере мгновенно, а проблема в получении результата запроса. Может есть какой-то другой способ, получить результат не по записям а единой таблицей? Код: c# 1. 2. 3. 4. 5. Проблема не в одном запросе, в моем приложении таких много нужно, но работает это всегда одинаково долго. Подскажите пожалуйста, что я делаю не так, или в какой стороне искать решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 14:48 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Hello, Chatlaninn! You wrote on 5 февраля 2015 г. 15:06:17: Chatlaninn> Помогите пожалуйста, кто знает. У меня FB 2.5, приложение С#.net 2013 , > использую последний провайдер FirebirdSql.Data.FirebirdClient.dll 4.6.1 > . Если с помощью IBExpert с того же компьютера в локальной сети, этот > запрос отрабатывается около 100 ms, а из приложения 15 секунд. Результат > запроса около 600 записей из пяти легких полей. в IBExpert фетчишь все записи до упора? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:05 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Это обычный select, который в SQL редакторе IBExpert мгновенно показывает результат, всю таблицу целиком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:14 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Chatlaninn, можно посмотреть этот обычный SELECT и DDL таблиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:16 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Chatlaninn, попробуй посмотреть трейсом что там за кулисами творится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:19 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. В данном случае источник данных это вьюха, но насколько я понимаю, проблема не на сервере и не в запросе, так как локально приложение работает без задержек, потому как не по сети, проблемы начинаются, когда это же приложение получает результаты по локальной сети. Может я не прав, но почему то мне кажется, что это из за того, что провайдер .net каждую запись результата запроса с сервера берет по отдельности, по очереди. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:26 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисChatlaninn, попробуй посмотреть трейсом что там за кулисами творится Не нужно, .Net при Load грузит все записи ( фетчит ) как уже написали, ibexpert только то что на экран, в winforms нет штатных компонентов, которые позволяли бы грузить частями по запросу при прокрутке. Так что если человек не понимает модель заложенную в эти DataSource-ы Microsoft-ом то ему проще будет взять "Delphi и его компоненты" ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:26 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Chatlaninn Код: plsql 1. 2. 3. В данном случае источник данных это вьюха, но насколько я понимаю, проблема не на сервере и не в запросе, так как локально приложение работает без задержек, потому как не по сети, проблемы начинаются, когда это же приложение получает результаты по локальной сети. Может я не прав, но почему то мне кажется, что это из за того, что провайдер .net каждую запись результата запроса с сервера берет по отдельности, по очереди. Сколько записей во view по днанному запрсу? [quot Chatlaninn] Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:29 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Всего 620 записей получается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:32 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
В других случаях, когда я из одной таблицы выбираю ФИО и id, но записей так же много, так же долго обрабатывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:33 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
ChatlaninnВ других случаях, когда я из одной таблицы выбираю ФИО и id, но записей так же много, так же долго обрабатывается. А какие параметры в этот момент у сети? ( ping до сервера, и скорость передачи )? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:37 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Chatlaninn, 620 записей это мало. И я не понимаю как они могут грузится 15 секунд. То что .net через провайдер адаптер грузит все записи, а не фетчит по одной я знаю. Ты пробовал в IBE жмакать кнопочку fetchAll? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:39 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
средний ping 1msec ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:40 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, точнее с сервера то фетчит он их один фиг также. А вот DataTable будет заполнен до упора пока они не кончатся в курсоре ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:40 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
В IBExpert Execute and fetch all Plan PLAN JOIN (JOIN (SORT (JOIN (V_PRIEMS TP NATURAL, V_PRIEMS TPAC INDEX (PK_T_PACIENT))), V_PRIEMS TUS INDEX (PK_T_USER)), V_PRIEMS TOS INDEX (PK_T_SOTR)) ------ Performance info ------ Prepare time = 16ms Execute time = 2s 137ms Avg fetch time = 0,11 ms Current memory = 34 658 256 Max memory = 37 926 152 Memory buffers = 2 048 Reads from disk to cache = 400 Writes from cache to disk = 0 Fetches from cache = 342 173 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:44 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Chatlaninn, ну вот 2s 137ms это уже совсем не 100ms. А теперь надо запустить трейс и посмотреть что за дополнительные запросы идут при заполнении DataTable. Вполне возможно что скорость можно увеличить если заранее создать все поля таблицы DataTable. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 15:55 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисChatlaninn, ну вот 2s 137ms это уже совсем не 100ms. А теперь надо запустить трейс и посмотреть что за дополнительные запросы идут при заполнении DataTable. Вполне возможно что скорость можно увеличить если заранее создать все поля таблицы DataTable. в Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Можно переопределить на > 620 ( вроде public ) p.s. Про IBExpert вроде писали что там время не совсем верное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 16:09 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
NikolayV81Можно переопределить на > 620 Можно. Но это не поможет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 16:17 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovNikolayV81Можно переопределить на > 620 Можно. Но это не поможет. ? не разбирался, а почему не поможет? ( я к тому что совсем проблему в 2 сек. не решит, это понятно, но м не 10 же? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 16:19 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
NikolayV81, в IBE отражает не время выполнения запроса, а время за которое сам IBE получил все данные которые он запросил, когда не жмакают Fetch All он запрашивает не все данные. Естественно туда могут входить и часть запросов к системным таблицам. Вообще у ТС какой-то странный результат, когда я пробовал .NET он у меня грузил 60000 записей за 30-50 секунд. И эти записи были довольно широкими. Конечно потом я отказался от загрузки такого количества записей в структуры типа DataTable. А тут какие то жалки 600 записей за 15 секунд. Хотя мне видится что тут есть поле деятельности для улучшения самой вьюхи. Можно её раскрыть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 16:22 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
NikolayV81а почему не поможет? Потому что, даже если этот параметр действительно используется при обращении к серверу (что не факт), это изменение заменит четыре раунд-трипа на один. При пинге в миллисекунду результат будет в пределах погрешности измерения. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 16:27 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Не ругайтесь пожалуйста, вьюха на скорую руку, так как все в спешке, проект горит. Сейчас создал поля DataTable а потом Load-ил те же самые 15 секунд, правда в этот раз проверял на VMware CREATE OR ALTER VIEW V_PRIEMS( ID, DDPRIEM, ID_PACIENT, FIO, DDROGD, ID_KASSIR, KAS_FIO, ID_DOKTOR, DOK_FIO, NOMER) AS select tp.id,tp.ddpriem, tp.id_pacient, tpac.fio, tpac.ddrogd, tp.id_kassir, tus.fio as "kas_fio",tp.id_doktor,tos.fio as "dok_fio",tp.nomer from t_priems tp left outer join t_pacient tpac on tp.id_pacient = tpac.id left outer join t_user tus on tp.id_kassir = tus.id left outer join t_sotr tos on tos.id = tp.id_doktor ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 16:30 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Chatlaninn, а теперь ответь на кой тебе тотальный LEFT OUTER JOIN. У тебя что приёмы могут быть без пациента? LEFT JOIN не даёт оптимизатору подумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 16:39 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Там нигде не должно быть Null, это я на всякий случай, пока тестовый режим, сейчас убрал все эти join, а результат такой же. Получается проблема все же в самом приложении, как то я не так load делаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 16:45 |
|
||
|
Результат запроса по локальной сети
|
|||
|---|---|---|---|
|
#18+
Chatlaninn, 1. Замени все LEFT JOIN на просто JOIN, если там они реально не требуются. 2. Проверь в IBE свой запрос он при FetchAll. Он может быть будет выполняться быстрее 3. Покажи как ты инициализируешь и создаёшь FbCommand com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 16:50 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38872577&tid=1563048]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
219ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 345ms |

| 0 / 0 |
