Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

view и параметры [D7, fb2]


Страницы:   1 2

Евгений Р. ©   (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 в саму вьюху


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо