Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.044 c
15-1231596252
Slider007
2009-01-10 17:04
2009.03.15
С днем рождения ! 4 января 2009 воскресенье


2-1232644918
markers
2009-01-22 20:21
2009.03.15
Проблема Extended или туплю?


15-1231502113
разбирающийся
2009-01-09 14:55
2009.03.15
карта израиля и палестины


15-1231101557
DillerXX
2009-01-04 23:39
2009.03.15
Кодирование DVD-video


8-1192288746
hahol_64_rus
2007-10-13 19:19
2009.03.15
работа с плейлистами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский