-
Поддерживает ли просмотр параметры?
create view view( f1,f2,f3 ) as select f1,f2,f3 from table where f4=:param
если да, то как их передать?
-
Нет.
-
в mssql это называется функция, в fb должно быть что-то типа этого
-
> в fb должно быть что-то типа этого
Прям-таки вот так вот ДОЛЖНО? И типа чего "этого"?
-
Johnmen © (24.07.08 09:07) [3] не так, но смысл тот же, типа функций в mssql.
-
> stas © (24.07.08 09:15) [4]
Какое отношение VIEW имеет к функции?
-
Johnmen © (24.07.08 09:21) [5] Причем здесь view? человек написал что он хочет получить на выходе и незнает как это сделать. Поэтому и привел пример с view. Я думаю он меня понял.
-
> stas © (24.07.08 09:38) [6] > человек написал что он хочет получить на выходе и незнает > как это сделать.
У тебя что с глазами? Где он такое написал?
-
если да, то как их передать?
select * from view where f4=:param
-
ну и включить ф4 в саму вьюху
-
> select * from view where f4=:param >
я в ФБ новичек. Не будет ли тормозов, если в table - миллион записей, а выбирается по критерию - десяток?
-
Не будет ли тормозов, если в table - миллион записей, а выбирается по критерию - десяток?
а причем здесь вью и параметры?
-
> Не будет ли тормозов, если в table - миллион записей, а > выбирается по критерию - десяток?
сокрость выборки зависит от того, насколько селективны индексы (если они есть) по тем полям, которые используются во where и вообще вьюха на одну таблицу смысла не имеет
-
Евгений Р. (24.07.08 11:25) [10] индекс на поле, по которому ведется отбор.
-
Правильный$Вася (24.07.08 11:31) [12] >и вообще вьюха на одну таблицу смысла не имеет отчего?
-
отчего? От узкого кругозора
-
> и вообще вьюха на одну таблицу смысла не имеет
имеет
-
Правильный$Вася (24.07.08 11:31) [12] Имеет - вычисляемые поля, раздача прав доступа.
-
>и вообще вьюха на одну таблицу смысла не имеет
таблица персонала. я самый главный программист, ты самый неглавный программист. я программирую зарплату и кадры, ты программируешь напоминалку дней рождения для секретаря и видеть поле "очень большая и секретная зарплата" тебе не положено. Да и гранта на селект самой таблицы у тебя нет.
зато есть вьюха для тебя.
-
на самом деле должно быть так: А) select 1 as priznak,f1,f2,f3
from table
where f4=:param
union
select 2 as priznak,f1,f2,f3
from table
where f4=:param
union
select 3 as priznak,f1,f2,f3
from table
where f4=:param
Б) create view view(priznak, f1,f2,f3 )
as
select 1 as priznak,f1,f2,f3
from table
union
select 2 as priznak,f1,f2,f3
from table
union
select 3 as priznak,f1,f2,f3
from table
*********************
select *
from view
where f4=:param
f4- везде индексировано А и Б будет работать одинаково? Нужно ли выводить поле выбора F4 в выборку?
-
Б) не будет работать
-
в догонку: в запросе - три таблицы (table1, table2,table3) Б - должен выглядеть так:
create view view(priznak, f1,f2,f3,f4 )
as
select 1 as priznak,f1,f2,f3,f4
from table
union
select 2 as priznak,f1,f2,f3,f4
from table
union
select 3 as priznak,f1,f2,f3,f4
from table
*********************
select *
from view
where f4=:param
теперь будет? и главное : как скорость?
-
>Евгений Р. (24.07.08 12:28) [19] не нужно union
-
теперь будет? и главное : как скорость?
Главное здесь бессмысленность самой вьюхи
-
одна и та же таблица умножается на три.
-
> и главное : как скорость? select 1 as priznak,f1,f2,f3
from table
where f4=:param
union
select 2 as priznak,f1,f2,f3
from table
where f4=:param
union
select 3 as priznak,f1,f2,f3
from table
where f4=:param -> select f4 as priznak,f1,f2,f3
from table
where f4 IN (:param1, :param3, :param3) в 3 раза быстрей ( - кое какая погрешность скорости зависящая от разных факторов, на небольших выборках можно пренебречь).
-
>> в запросе - три таблицы (table1, table2,table3)
Просто автор не утруждает себя проверкой того, что постит сюда...
-
> stas © (24.07.08 11:59) [17] > Медвежонок Пятачок © (24.07.08 12:00) [18]
только в том случае, если в 2.0 нет возможности раздачи прав на поля но у автора я не вижу такой проблемы
-
> [21] Евгений Р. (24.07.08 12:44)
Если позволяет логика работы, то UNION ALL ускорит выполнение.
|