powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / View с использованием left join. ООоооочень долго
25 сообщений из 149, страница 2 из 6
View с использованием left join. ООоооочень долго
    #39505729
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarhitay,

попробуй этот запрос без вьюхи (тот же count(*)). Подозреваю будет другой вариант.
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505740
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarhitay> Что такое индекс?
tarhitay> P.S. Ну нуб я пока в БД

А, ну так читать и читать. Книги, статьи.
На ibase.ru ссылку уже дали, список книг
есть там же, плюс это 1883929
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505750
tarhitay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисtarhitay,

ну а чего тогда удивляешься медленному времени выполнения. У тебя в PINDX12 нет первичного ключа или хотя бы индекса на POSTALCODE.

Довольно подозрительно что он у вас аж 100 симоволов

CREATE TABLE PINDX12
(
POSTALCODE Varchar(100),
REGION Varchar(100),
AUTONOM Varchar(100),
AREA Varchar(100),
CITY Varchar(100),
CITY_1 Varchar(100)
);
CREATE UNIQUE INDEX IDX_PINDX121 ON PINDX12 (POSTALCODE);
GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
ON PINDX12 TO SYSDBA WITH GRANT OPTION;

Так лучше?

А по поводу кол-ва символов... Не я создавал эту таблицу :( Там 6 было бы достаточно
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505753
tarhitay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустамtarhitay> Что такое индекс?
tarhitay> P.S. Ну нуб я пока в БД

А, ну так читать и читать. Книги, статьи.
На ibase.ru ссылку уже дали, список книг
есть там же, плюс это 1883929


- Как пожарить яичницу?
- Вот тебе, мальчик, учебники по кулинарии. Тома с первого по двенадцатый. Потом еще дам технологические карты...
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505754
tarhitay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Молочный Александр,

SELECT каждого поля в отдельности будет работать быстрее чем LEFT JOIN?
Почему так? :( И зачем тогда вообще этот LEFT JOIN нужен...
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505757
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarhitay- Как пожарить яичницу?
- Вот тебе, мальчик, учебники по кулинарии. Тома с первого по двенадцатый. Потом еще дам технологические карты...
Как провести операцию на позвоночнике? Очень надо.
Поделитесь секретами, какие подводные камни?
Книжку по хирургии уже купил.
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505758
tarhitay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WildSerytarhitay- Как пожарить яичницу?
- Вот тебе, мальчик, учебники по кулинарии. Тома с первого по двенадцатый. Потом еще дам технологические карты...
Как провести операцию на позвоночнике? Очень надо.
Поделитесь секретами, какие подводные камни?
Книжку по хирургии уже купил.

Ну вы то хрен с пальцем не сравнивайте...
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505759
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarhitay
- Как пожарить яичницу?
- Вот тебе, мальчик, учебники по кулинарии. Тома с первого по двенадцатый. Потом еще дам технологические карты...

Так ты хочешь чтобы тебе кто-то пожарил яичницу или понять как это делается? Если второе, то другого пути нет. Если первое, то этим люди занимаются за деньги.
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505765
tarhitay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Старый плюшевый мишка,

Пытаюсь понять, каким образом работает этот запрос.
То что читал про LEFT JOIN говорит о том, что берутся все строки из левой таблицы и в соответствии с условием выбираются строки из правой. Не пойму почему это так долго делается.
По моему происходит так: Берется строка из левой, выполняется запрос к правой и, если условие верно, строка из правой подставляется к левой. И так для каждой строки из левой.
Теперь интересует вопрос, нахрена городить огород, если есть SELECT
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505771
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarhitaySELECT каждого поля в отдельности будет работать быстрее чем LEFT JOIN?
Почему так? :( И зачем тогда вообще этот LEFT JOIN нужен...Нет, не будет. Он ерунду написал.
По сути, это такой же LEFT JOIN.
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505780
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarhitay,

тебе же ясно сказали потому что индекса нет. План запроса где?
Ага не знаем что такое план. Ну а как нам с тобой беседовать тогда, если ты написанное не понимаешь, термины не знаешь и читать про них не хочешь?
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505787
tarhitay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

Лучше скажи как этот план из flamerobin'а вытащить?
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505794
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarhitayСимонов Денис,

Лучше скажи как этот план из flamerobin'а вытащить?

ЧИТАТЬ__ВСЕМ,__КТО__ПРИШЕЛ__СЮДА__В__ПЕРВЫЙ__РАЗ! там есть ссылка на ибэксперт, скачать и пользоваться. флеймробин тут не в фаворе, как в нем что посмотреть неизвестно, не исключено, что можно.
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505797
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarhitayСтарый плюшевый мишка,

Пытаюсь понять, каким образом работает этот запрос.
То что читал про LEFT JOIN говорит о том, что берутся все строки из левой таблицы и в соответствии с условием выбираются строки из правой. Не пойму почему это так долго делается.
По моему происходит так: Берется строка из левой, выполняется запрос к правой и, если условие верно, строка из правой подставляется к левой. И так для каждой строки из левой.
Теперь интересует вопрос, нахрена городить огород, если есть SELECT

Последнюю фразу не понял, представляешь в целом верно. Если условие соединения (join) таблиц использует индекс на правой, запрос летает мухой. Если такого индекса нет, по каждой строке левой таблицы бедолаге серверу приходится перебирать все записи из правой, с закономерным итогом.
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505802
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarhitay> - Как пожарить яичницу?

Ну правильно, ты же (вроде бы) хочешь научиться
жарить её, а не получить готовую. Трудно научить,
если ты не знаешь даже нужной терминологии -
индекс, план масло, яйца, огонь, сковорода и т.д.

tarhitay> как этот план из flamerobin'а вытащить?

Вот если бы ты прочитал тему по ссылке, то знал бы.
1. Удалить flamerobin
2. Установить IBExpert.
3. Выполнить (или prepare) запрос.
4. Увидеть план запроса внизу.
5. Если интересно - заглянуть на вкладки про
производительность запрос для подробностей.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505812
tarhitay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,

Поняяятно :)

Дома есть IBExpert.

В данный момент сижу очень далеко от нормального компа. С собой ноут и мобильный интернет. Очень жалко тратить на выкачивание эксперта :(
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505813
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarhitayCREATE UNIQUE INDEX IDX_PINDX121 ON PINDX12 (POSTALCODE);
а почему тут unique, а не primary key ?
tarhitayGRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
ON PINDX12 TO SYSDBA WITH GRANT OPTION;
зачем вот это ...? У SYSDBA и так есть все права.
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505820
tarhitay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,

флайм робин сам делает.
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505827
tarhitay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,

CREATE TABLE PINDX12
(
POSTALCODE Varchar(100) NOT NULL,
REGION Varchar(100),
AUTONOM Varchar(100),
AREA Varchar(100),
CITY Varchar(100),
CITY_1 Varchar(100),
CONSTRAINT PK_PINDX12_1 PRIMARY KEY (POSTALCODE)
);
CREATE UNIQUE INDEX IDX_PINDX121 ON PINDX12 (POSTALCODE);
GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
ON PINDX12 TO SYSDBA WITH GRANT OPTION;

Переделал вот так
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505832
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarhitay,

не надо для первичного ключа ещё и индекс создавать. Он и так автоматически создаётся
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505834
tarhitay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эгегей!!!!!

CREATE VIEW ORG_VIEW (GUID, ORG_NAME, REGION)
AS
SELECT
ORGALLINFO.GUID,
ORGALLINFO.ORGNAME,
d1.REGION
FROM ORGALLINFO
Left join PINDX12 d1 on d1.POSTALCODE=ORGALLINFO.ORGPOSTINDEX
;

PLAN JOIN (ORG_VIEW ORGALLINFO NATURAL, ORG_VIEW D1 INDEX (PK_PINDX12_1))


Executing...
Done.
14026 fetches, 0 marks, 1218 reads, 0 writes.
0 inserts, 0 updates, 0 deletes, 1665 index, 1675 seq.
Delta memory: 27816 bytes.
Total execution time: 0.771s
Script execution finished.


Господа, спасибо за "яичницу". Кажись разобрался :)
За ссылки спасибо :) Буду изучать.
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505840
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И гранты для SYSDBA таки не нужны - kdv заметил про это уже, но автор не учёл
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505846
tarhitay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
o_v_a,

Да их FlameRobin сам подставляет
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505873
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarhitay- Вот тебе, мальчик, учебники по кулинарии.

я тебя настоятельно рекомендую прочитать том первый как минимум.

в разделе книги на ibase - Delphi и разработка Баз Данных.
книга старая, есть издания под Delphi 3 и Delphi 5 - то есть прошлый век. Второе издание мне удавалось нагуглить.

Так вот, там тебе мяконько проведут по кухне и покажут: вот это - нож, нужен для того и того, в таких и таких случаях. А вот это - вилка, используются тут и тут, а вот тут лучше не надо.

Куски про Дельфи можешь, если не нужно, просто пропускать, а вот куски про организацию и хранение данных - прочитай. Не как последнюю истину - Delphi 5 вышла в 1999, книга чуть позже - а как ликбез, чтобы понимать основы. Или будешь делать, только для того, чтобы потом переделывать, попутно на форумах задавая странные вопросы.
...
Рейтинг: 0 / 0
View с использованием left join. ООоооочень долго
    #39505886
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столько пустых слов сказал, но ни ссылку на
книгу не дал, ни даже название/автора не указал.

P.S. Книга Сорокина что ли?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 149, страница 2 из 6
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / View с использованием left join. ООоооочень долго
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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