Главная страница
    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.061 c
3-1216183175
Rav
2008-07-16 08:39
2009.03.15
Как заставить работать ADO в сервисе NT


2-1232796415
programmer90
2009-01-24 14:26
2009.03.15
поддеревья в TreeView


15-1231430120
Unknown user
2009-01-08 18:55
2009.03.15
Приложение разделенное на процессы


15-1231329265
Брэд
2009-01-07 14:54
2009.03.15
Пароль


15-1231925321
Thor234
2009-01-14 12:28
2009.03.15
D7 and RAD STUDIO 2007





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский