Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.03.15;
Скачать: CL | DM;

Вниз

view и параметры   Найти похожие ветки 

 
Евгений Р.   (2008-07-24 02:17) [0]

Поддерживает ли просмотр параметры?

create view view( f1,f2,f3 )
as
select f1,f2,f3
from table
where f4=:param

если да, то как их передать?


 
Johnmen ©   (2008-07-24 08:53) [1]

Нет.


 
stas ©   (2008-07-24 09:01) [2]

в mssql это называется функция, в fb должно быть что-то типа этого


 
Johnmen ©   (2008-07-24 09:07) [3]


> в fb должно быть что-то типа этого

Прям-таки вот так вот ДОЛЖНО? И типа чего "этого"?


 
stas ©   (2008-07-24 09:15) [4]

Johnmen ©   (24.07.08 09:07) [3]
не так, но смысл тот же, типа функций в mssql.


 
Johnmen ©   (2008-07-24 09:21) [5]


> stas ©   (24.07.08 09:15) [4]

Какое отношение VIEW имеет к функции?


 
stas ©   (2008-07-24 09:38) [6]

Johnmen ©   (24.07.08 09:21) [5]
Причем здесь view?
человек написал что он хочет получить на выходе и незнает как это сделать.
Поэтому и привел пример с view.
Я думаю он меня понял.


 
Johnmen ©   (2008-07-24 09:41) [7]


> stas ©   (24.07.08 09:38) [6]
> человек написал что он хочет получить на выходе и незнает
> как это сделать.

У тебя что с глазами? Где он такое написал?


 
Медвежонок Пятачок ©   (2008-07-24 09:42) [8]

если да, то как их передать?

select * from view where f4=:param


 
Медвежонок Пятачок ©   (2008-07-24 09:49) [9]

ну и включить ф4 в саму вьюху


 
Евгений Р.   (2008-07-24 11:25) [10]


> select * from view where f4=:param
>


я в ФБ новичек.
Не будет ли тормозов, если в table - миллион записей, а выбирается по критерию - десяток?


 
Медвежонок Пятачок ©   (2008-07-24 11:28) [11]

Не будет ли тормозов, если в table - миллион записей, а выбирается по критерию - десяток?

а причем здесь вью и параметры?


 
Правильный$Вася   (2008-07-24 11:31) [12]


> Не будет ли тормозов, если в table - миллион записей, а
> выбирается по критерию - десяток?

сокрость выборки зависит от того, насколько селективны индексы (если они есть) по тем полям, которые используются во where
и вообще вьюха на одну таблицу смысла не имеет


 
stas ©   (2008-07-24 11:31) [13]

Евгений Р.   (24.07.08 11:25) [10]
индекс на поле, по которому ведется отбор.


 
Кщд   (2008-07-24 11:49) [14]

Правильный$Вася   (24.07.08 11:31) [12]
>и вообще вьюха на одну таблицу смысла не имеет
отчего?


 
Медвежонок Пятачок ©   (2008-07-24 11:52) [15]

отчего?
От узкого кругозора


 
Игорь Шевченко ©   (2008-07-24 11:53) [16]


> и вообще вьюха на одну таблицу смысла не имеет


имеет


 
stas ©   (2008-07-24 11:59) [17]

Правильный$Вася   (24.07.08 11:31) [12]
Имеет - вычисляемые поля, раздача прав доступа.


 
Медвежонок Пятачок ©   (2008-07-24 12:00) [18]

>и вообще вьюха на одну таблицу смысла не имеет

таблица персонала.
я самый главный программист, ты самый неглавный программист.
я программирую зарплату и кадры, ты программируешь напоминалку дней рождения для секретаря и видеть поле "очень большая и секретная зарплата" тебе не положено. Да и гранта на селект самой таблицы у тебя нет.

зато есть вьюха для тебя.


 
Евгений Р.   (2008-07-24 12:28) [19]

на самом деле должно быть так:
А)
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:37) [20]

Б) не будет работать


 
Евгений Р.   (2008-07-24 12:44) [21]

в догонку:
в запросе - три таблицы (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:45) [22]

>Евгений Р.   (24.07.08 12:28) [19]
не нужно union


 
Медвежонок Пятачок ©   (2008-07-24 12:46) [23]

теперь будет?
и главное : как скорость?


Главное здесь бессмысленность самой вьюхи


 
Медвежонок Пятачок ©   (2008-07-24 12:50) [24]

одна и та же таблица умножается на три.


 
sniknik ©   (2008-07-24 13:03) [25]

> и главное : как скорость?

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 раза быстрей ( - кое какая погрешность скорости зависящая от разных факторов, на небольших выборках можно пренебречь).


 
Johnmen ©   (2008-07-24 13:07) [26]

>> в запросе - три таблицы (table1, table2,table3)

Просто автор не утруждает себя проверкой того, что постит сюда...


 
Правильный$Вася   (2008-07-24 13:08) [27]


> stas ©   (24.07.08 11:59) [17]
> Медвежонок Пятачок ©   (24.07.08 12:00) [18]

только в том случае, если в 2.0 нет возможности раздачи прав на поля
но у автора я не вижу такой проблемы


 
Sergey13 ©   (2008-07-24 13:44) [28]

> [21] Евгений Р.   (24.07.08 12:44)

Если позволяет логика работы, то UNION ALL ускорит выполнение.



Страницы: 1 вся ветка

Текущий архив: 2009.03.15;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.019 c
2-1232645435
Tinky
2009-01-22 20:30
2009.03.15
Надо ли обнулять массивы?


15-1231322740
Пронин
2009-01-07 13:05
2009.03.15
Винрар


15-1231425248
Мистер Блин
2009-01-08 17:34
2009.03.15
Рекурсивный метод сортировки


15-1231521954
Кое кто
2009-01-09 20:25
2009.03.15
Как называлась программа


9-1178095987
Sherzod
2007-05-02 12:53
2009.03.15
проблема при масштабировании.....