Форум: "Базы";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
ВнизБудьте добры , подскажите пожалуйста: Найти похожие ветки
← →
Sveta (2003-10-06 09:42) [0]Каким образом лучше реализовать поиск по большой базе IB6 через FIB + , заранее благодарна.
← →
Sergey_Masloff (2003-10-06 09:58) [1]Хороший вопрос. А чем поиск по большой базе через FIB+ отличается от поиска по такой же базе через, например, IBX? Лично я (из применимых на практике)методов знаю только использование SELECT. Если база большая и выборки не очень быстро идут то почитайте про индексы и планы запросов, в том числе и про явное указание планов запроса.
← →
GreatMaster (2003-10-06 11:36) [2]> А чем поиск по большой базе через FIB+ отличается от поиска по такой же базе через, например, IBX
Тем что там могут немного отличаться св-ва/методы при работе с фильтром и запросами с параметрами. Ну фильтр ваще использовать нельзя, а вот запросы можно попереписывать, выискивая наибыстрейший вариант (предварительно проиндексировав базу, конечно), так например, при прочих равных условиях запрос
SELCT Table1.N, (SELECT NAME FROM Table2 WHERE Table2.N=Table1.N)
FROM Table1
может работать значительно быстрее чем тоже но
SELECT Table1.N, Table2.Name
FROM Table1, Table2
WHERE Table1.N=Table2.N
и всё такое...
← →
Danilka (2003-10-06 11:40) [3][2] GreatMaster © (06.10.03 11:36)
>SELECT Table1.N, (SELECT NAME FROM Table2 WHERE Table2.N=Table1.N)
>FROM Table1
А разве в ИБ такой запрос отработает?
И причем здесь средство доступа, запрос выполняет сервер.
← →
Danilka (2003-10-06 11:44) [4][2] GreatMaster © (06.10.03 11:36)
кстати, это будет не то-же самое.
вернут одинаковые данные (в орокле) такие запросы:
SELECT Table1.N, (SELECT NAME FROM Table2 WHERE Table2.N=Table1.N)
FROM Table1
и
SELECT Table1.N, Table2.Name
FROM Table1, Table2
WHERE Table1.N=Table2.N(+)
иначе, строки у которых поле Table1.N is null или посто не совпадает с Table2.N не попадут в набор.
:))
← →
Sergey_Masloff (2003-10-06 11:58) [5]GreatMaster © (06.10.03 11:36) [2]
Какое отношение приведенный тобой пример имеет к работе с параметрами и (боже упаси) фильтрами. В любом случае на сервер передается текст запроса а назад на клиента - результат. И какие при этом компоненты используются не так важно. Работа с параметрами по сравнению с временем обработки запроса в 99.99999% занимает пренебоежимо малый промежуток времени. Или ты часто встречал запрос в котором штук 100 параметров а результат - 1 запись с выборкой по индексу? ;-)
То что ты описал с выискиванием наибыстрейшего варианта - это просто неявная попытка планирования запроса. Кстати переписывать текст запроса зачастую не нужно - просто прописать план (в InterBase) или расставить хинты (Oracle).
← →
Johnmen (2003-10-06 12:14) [6]>GreatMaster © (06.10.03 11:36)
Хотелось бы узнать, при каких условиях первый запрос быстрее второго ?
И вообще, они неэквивалентны, о чем и сказал Danilka © (06.10.03 11:44).
← →
Sveta (2003-10-06 14:35) [7]от души благодарю за внимание, есть над чем подумать!
← →
Sergey13 (2003-10-07 09:18) [8]А по моему тут думать пока особо не над чем . В своем вопросе ты не сказала о своей задаче практически ничего нужного для решения.
>Каким образом лучше реализовать поиск по большой базе IB6 через FIB +
"лучше реализовать" - это очень субъективно. Главное правильно, т.е. что бы находилось ВСЕ что есть и соответствует критериям.
" поиск " - что за поиск? Одно дело отобрать записи по форинкею, и совсем другое найти частичное соответствие в БЛОБах.
"по большой базе IB6" - большая это скока точно в байтах. И что за база - статический набор данных типа телефонного справочника, или постоянно обновляемые таблицы?
" через FIB + " - это, как справедливо заметил Sergey_Masloff (06.10.03 09:58) [1] тут вообще ни при чем.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c