Форум: "Базы";
Текущий архив: 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.052 c