![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
view и параметры [D7, fb2]
Евгений Р. © (2008-07-24 02:17:00)Поддерживает ли просмотр параметры?
create view view( f1,f2,f3 )
as
select f1,f2,f3
from table
where f4=:param
если да, то как их передать?
Sergey13 (2008-07-24 13:44:00) [1]> [21] Евгений Р. (24.07.08 12:44)
Если позволяет логика работы, то UNION ALLускорит выполнение.
Правильный$Вася (2008-07-24 13:08:00) [2]
> stas © (24.07.08 11:59) [17]
> Медвежонок Пятачок © (24.07.08 12:00) [18]
только в том случае, если в 2.0 нет возможности раздачи прав на поля
но у автора я не вижу такой проблемы
Johnmen (2008-07-24 13:07:00) [3]>> в запросе - тритаблицы (table1, table2,table3)
Просто автор не утруждает себя проверкой того, что постит сюда...
sniknik (2008-07-24 13:03:00) [4]> и главное : как скорость?
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 раза быстрей ( - кое какая погрешность скорости зависящая от разных факторов, на небольших выборках можно пренебречь).
Медвежонок Пятачок (2008-07-24 12:50:00) [5]одна и та же таблица умножается на три.
Медвежонок Пятачок (2008-07-24 12:46:00) [6]теперь будет?
и главное : как скорость?
Главное здесь бессмысленность самой вьюхи
Кщд (2008-07-24 12:45:00) [7]>Евгений Р. (24.07.08 12:28) [19]
не нужно union
Евгений Р. (2008-07-24 12:44:00) [8]в догонку:
в запросе - три таблицы (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
теперь будет?
и главное : как скорость?
Медвежонок Пятачок (2008-07-24 12:37:00) [9]Б) не будет работать
Евгений Р. (2008-07-24 12:28:00) [10]на самом деле должно быть так:
А)
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 в выборку?
Медвежонок Пятачок (2008-07-24 12:00:00) [11]>и вообще вьюха на одну таблицу смысла не имеет
таблица персонала.
я самый главный программист, ты самый неглавный программист.
я программирую зарплату и кадры, ты программируешь напоминалку дней рождения для секретаря и видеть поле "очень большая и секретная зарплата" тебе не положено. Да и гранта на селект самой таблицы у тебя нет.
зато есть вьюха для тебя.
stas (2008-07-24 11:59:00) [12]Правильный$Вася (24.07.08 11:31) [12]
Имеет - вычисляемые поля, раздача прав доступа.
Игорь Шевченко (2008-07-24 11:53:00) [13]
> и вообще вьюха на одну таблицу смысла не имеет
имеет
Медвежонок Пятачок (2008-07-24 11:52:00) [14]отчего?
От узкого кругозора
Кщд (2008-07-24 11:49:00) [15]Правильный$Вася (24.07.08 11:31) [12]
>и вообще вьюха на одну таблицу смысла не имеет
отчего?
stas (2008-07-24 11:31:00) [16]Евгений Р. (24.07.08 11:25) [10]
индекс на поле, по которому ведется отбор.
Правильный$Вася (2008-07-24 11:31:00) [17]
> Не будет ли тормозов, если в table - миллион записей, а
> выбирается по критерию - десяток?
сокрость выборки зависит от того, насколько селективны индексы (если они есть) по тем полям, которые используются во where
и вообще вьюха на одну таблицу смысла не имеет
Медвежонок Пятачок (2008-07-24 11:28:00) [18]Не будет ли тормозов, если в table - миллион записей, а выбирается по критерию - десяток?
а причем здесь вью и параметры?
Евгений Р. (2008-07-24 11:25:00) [19]
> select * from view where f4=:param
>
я в ФБ новичек.
Не будет ли тормозов, если в table - миллион записей, а выбирается по критерию - десяток?
Медвежонок Пятачок (2008-07-24 09:49:00) [20]ну и включить ф4 в саму вьюху