powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Результат запроса по локальной сети
25 сообщений из 58, страница 2 из 3
Результат запроса по локальной сети
    #38872600
Chatlaninn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Через IBE получается 2,9 секунды с fetch all

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
using (FirebirdSql.Data.FirebirdClient.FbConnection con = new FirebirdSql.Data.FirebirdClient.FbConnection(connect))
            {
                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 / 0
Результат запроса по локальной сети
    #38872603
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chatlaninn,

Это мне кажется
что план

Код: sql
1.
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))


и вьюха
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
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 


как бы не соответствуют друг другу

Ну по крайней мере план не соответствует запросу
Код: sql
1.
Select * from V_PRIEMS where 
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872612
Chatlaninn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот этот план
План
PLAN JOIN (VP TP NATURAL, VP TOS INDEX (PK_T_SOTR), VP TPAC INDEX (PK_T_PACIENT), VP TUS INDEX (PK_T_USER))

------ Информация о производительности ------
Время подготовки запроса = 16ms
Время выполнения запроса = 93ms
Среднее время на получение одной записи = 0,09 ms
Current memory = 35 042 536
Max memory = 42 480 232
Memory buffers = 2 048
Reads from disk to cache = 0
Writes from cache to disk = 0
Чтений из кэша = 100 851
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872615
Chatlaninn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но это локально, а если по сети, получается в IBE 2,9 секунды, а в приложении load происходит в течении 15 секунд
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872618
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

у него во вьюхе сортировка воткнута. Причём совершенно зря. Не надо так делать.

Chatlaninn,
на ddpriem индекс есть?

Почему ты транзакцию убиваешь после дисконнекта? И уж если тебе эта транзакция больше не нужна то я бы её завершил коммитом, хотя Dispose() скорее всего так и делает.
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872622
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chatlaninn,

это что жt за сеть такая. Определение полей в таблицах покажи. Сдаётся мне там с дуру влеплено что типа VARCHAR(1024) или BLOB на какое нибудь FIO
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872626
Chatlaninn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
индекса пока еще нет нет, коммит поставлю, просто я не сплю уже давно... Все обращают внимание на запрос, индексы и т.д. то есть на базу, но ведь если бы проблема была в этом, должно было бы тормозить и локально? А тормозит только по сети. Или я не прав?
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872635
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chatlaninn,

размеры и типы полей покажи. Индекс добавь обязательно. И ещё большинство из присутствующих здесь не пользуются .NET, но зато много могут подсказать по самому FB, поэтому и "Все обращают внимание на запрос, индексы и т.д. то есть на базу"
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872637
Chatlaninn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, такого ничего нет, сеть обычная, рядом ноутбук, в метре от wifi, а база на мощном компьютере соединенным с роутером кабелем 100Mb
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
CREATE TABLE T_PACIENT (
    ID          INTEGER NOT NULL,
    FIO         VARCHAR(30),
    FAM         VARCHAR(30),
    NAME        VARCHAR(30),
    OTCH        VARCHAR(30),
    SEX         CHAR(1),
    DDROGD      TIMESTAMP,
    NOMOMS      VARCHAR(30),
    NOMDMS      VARCHAR(30),
    SKIDKA      DOUBLE PRECISION,
    ID_PASPORT  INTEGER,
    ADRES       VARCHAR(200),
    KOMMENT     VARCHAR(300),
    DEL         SMALLINT,
    US_ID       INTEGER,
    DDTT        TIMESTAMP
);
CREATE TABLE T_PRIEMS (
    ID          INTEGER NOT NULL,
    DDPRIEM     TIMESTAMP,
    ID_PACIENT  INTEGER,
    ID_KASSIR   INTEGER,
    ID_USLUG    INTEGER,
    ID_DOKTOR   INTEGER,
    CENA        DOUBLE PRECISION,
    SKIDKA      DOUBLE PRECISION,
    NOMER       INTEGER,
    DEL         SMALLINT,
    US_ID       INTEGER,
    DDTT        TIMESTAMP
);
CREATE TABLE T_SOTR (
    ID        INTEGER NOT NULL,
    FIO       VARCHAR(30),
    FAM       VARCHAR(30),
    NAME      VARCHAR(30),
    OTCH      VARCHAR(30),
    ID_DOLG   INTEGER,
    DDPRIOM   TIMESTAMP,
    TABNOMER  INTEGER,
    DDUVOLEN  TIMESTAMP,
    DDROGD    TIMESTAMP,
    KONTINF   VARCHAR(300),
    DEL       SMALLINT,
    US_ID     INTEGER,
    DDTT      TIMESTAMP
);
CREATE TABLE T_USER (
    ID       INTEGER NOT NULL,
    FIO      VARCHAR(30),
    FAM      VARCHAR(30),
    NAME     VARCHAR(30),
    OTCH     VARCHAR(30),
    PASSW    VARCHAR(20),
    ID_DOLG  INTEGER,
    DEL      SMALLINT,
    US_ID    INTEGER,
    DDTT     TIMESTAMP
);
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872642
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChatlaninnВсе обращают внимание на запрос, индексы и т.д. то есть на базу, но ведь
если бы проблема была в этом, должно было бы тормозить и локально? А тормозит только по
сети.
Всё просто: те, кто использовал .NET, понятия не имеют почему он у тебя тормозит и копают
там где светлее. Те, кто не используют .NET, не хотят голословно заявлять, что это
глюкавый тормоз и тоже копают в другом месте.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872647
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chatlaninn,

1. Добавь индекс ddpriem
2. Покажи вьюху в том виде какая она у тебя есть
3. Покажи запрос zapr в такаом виде в котором он у тебя есть
4. Сделай по сети FetchAll этого запроса (с добавленным индексом) в IBE по сети и покажи результат
5. Выполни этот же запрос (с добавленным индексом) в своей проге и доложи результат.

И таки ещё одно запрос потом второй раз выполни в своей проге и скажи результат выполнения.

Просто прога на .NET первый раз всегда выполняет его дольше
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872649
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

ну не такой он уж глюкавый тормоз, если на нём Web сайты собирать. А для оконных приложений ну его нафиг
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872653
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мысль наводят твои сообщения
ChatlaninnВремя подготовки запроса = 16ms
Время выполнения запроса = 93ms
Но это локально, а если по сети, получается в IBE 2,9 секунды, а в приложении load происходит в течении 15 секунд

Но это локально, а если по сети, получается в IBE 2,9 секунды
- Сетка тормознутая
- разные запросы
--разные базы

в IBE 2,9 секунды, а в приложении load происходит в течении 15 секунд
- в приложение не так (я с .NET не знаком и ничего по этому поводу сказать не могу)
- разные запросы
--разные базы

зы. разные запросы и разные базы проходил много раз и сам :(
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872657
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

а я предлагал трейсом глянуть
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872673
Chatlaninn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вьюха, как есть:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
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, t_pacient tpac, t_user tus, t_sotr tos
where (tp.id_pacient = tpac.id) and(tp.id_kassir = tus.id) and (tos.id = tp.id_doktor)


Запрос как есть, то есть как он создается в приложении:
Код: plsql
1.
2.
3.
select ID, DDPRIEM, ID_PACIENT, FIO, DDROGD, ID_KASSIR, KAS_FIO, ID_DOKTOR, DOK_FIO, NOMER 
from v_priems 
where (ddpriem between '15.12.2014 00:00' and '05.02.2015 23:59') order by ddpriem



IBE по сети
Plan
PLAN SORT (JOIN (V_PRIEMS TP INDEX (_IDXDDPRIEM), V_PRIEMS TOS INDEX (PK_T_SOTR), V_PRIEMS TPAC INDEX (PK_T_PACIENT), V_PRIEMS TUS INDEX (PK_T_USER)))

------ Performance info ------
Prepare time = 16ms
Execute time = 1s 887ms
Avg fetch time = 0,10 ms
Current memory = 35 297 400
Max memory = 42 622 808
Memory buffers = 2 048
Reads from disk to cache = 0

А приложение по сети все те же 15 секунд, пробовал в отладчике, эти 15 секунд уходят на DataTable.Load()
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872684
Chatlaninn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m7m
Сеть обычная как на большинство предприятий, так же параллельно проверяю в VMware, результат такой же, база и запросы точно одинаковые, ставлю останов в отладчике и считываю с переменной запроса, все одинаково. Боюсь дело в провайдере может в FireBird клиенте, кстати клиент и сервер должны быть одной версии? А разрядность как? Может это влияет, потому как сервер 64 , а на клиентах 32 рязряда, кстати и приложение мое для 32 -ух рязрадных...
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872689
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chatlaninn,

блин на кой ты явные JOIN заменил на неявные?

Попробуй датаридором извлечь 1 строку посмотри сколько времени на это уйдёт.

И ещё проверь запрос

Код: sql
1.
2.
3.
select ID, DDPRIEM, ID_PACIENT, FIO, DDROGD, ID_KASSIR, KAS_FIO, ID_DOKTOR, DOK_FIO, NOMER 
from v_priems 
where (ddpriem between '15.12.2014 00:00' and '05.02.2015 23:59') order by ddpriem ROWS 1



в своём приложении. Если дело только в передачи по сети, то такой запрос 1 строка должна быть получена пулей.
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872698
Chatlaninn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал, дописал в конце запроса Rows 1 , запустил приложение по сети, результат ошеломляющий! Одна запись появилась мгновенно.
То есть дело не в базе, вначале я загрузил в базу всех клиентов за прошлый период работающей организации, хотел посмотреть как будет выглядеть справочник клиентов, локально было нормально около 15000 записей, но просто ФИО, без ничего только одно поле, без сортировки, из одной таблицы, а по сети думало мое приложение минут 5 и попращалось. Я думал, что слишком много записей, но 1000 - это необходимость.
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872706
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChatlaninnЧерез IBE получается 2,9 секунды с fetch all

Код: c#
1.
using (FirebirdSql.Data.FirebirdClient.FbConnection con = new FirebirdSql.Data.FirebirdClient.FbConnection(connect))


А ты можешь попробовать этот свой тест через IBProvider и его же ADO.NET провайдер? Надеюсь, последний асилит твой тест :)

По идее, если оно будет так же тупить, то проблема в
Код: c#
1.
dt.Load(fdr, LoadOption.OverwriteChanges);



Примеры настройки подключения можно посмотреть здесь .

В чистом виде, скорость загрузки у IBProvider-a и IBE на средних множествах сопоставима.
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872711
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChatlaninnБоюсь дело в провайдере может в FireBird клиенте

А ты используешь Firebird клиент или встроенную в провайдер эмуляцию сетевого протокола?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872726
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dimitry Sibiryakov!
You wrote on 5 февраля 2015 г. 18:26:51:

Dimitry Sibiryakov> А ты используешь Firebird клиент или встроенную в провайдер эмуляцию
> сетевого протокола? а когда чинчура её туда запихал?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872738
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийа когда чинчура её туда запихал?
Да вроде бы изначально JDBC и .NЕT были двумя извращениями с прямой реализацией протокола.
Это потом производители сжалились и позволили вызывать из байт-кода нативные библиотеки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872745
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dimitry Sibiryakov!
You wrote on 5 февраля 2015 г. 18:38:14:

Dimitry Sibiryakov> Да вроде бы изначально JDBC и .NЕT были двумя извращениями с прямой
> реализацией протокола. JDBC type 4 да, но не изначально.
про .NЕT слышу впервые.


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872750
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийа когда чинчура её туда запихал?
ее туда пихал еще Альварез
...
Рейтинг: 0 / 0
Результат запроса по локальной сети
    #38872756
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dimitr!
You wrote on 5 февраля 2015 г. 18:53:19:

Dimitr> ее туда пихал еще Альварез ужас чо творят...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 58, страница 2 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Результат запроса по локальной сети
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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