powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / можно ли в аса делать вычисляемые поля на вычисляемые поля
5 сообщений из 5, страница 1 из 1
можно ли в аса делать вычисляемые поля на вычисляемые поля
    #32740993
АСА 9


Спасибо
...
Рейтинг: 0 / 0
можно ли в аса делать вычисляемые поля на вычисляемые поля
    #32741094
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй, нам тоже интересно ;).
...
Рейтинг: 0 / 0
можно ли в аса делать вычисляемые поля на вычисляемые поля
    #32741144
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Главное не переусердствовать с ними. Руководствоваться решением ввода вычисляемых полей лучше исходя из следующих соображений:
1. требуется сделать индекс на вычисляемое поле из за частого использования выражения вычисляемого поля в фильтре у запросов (например у нас есть поле типа Date и мы часто в запросах ставим условие Year(Date) = <Значение>).
2. требуется большая скорость работы с ними - в ASA они хранятся как обычные, то есть занимают физическое пространство в БД и соответствующе сами их вычисления происходят в момент вставки и обновления записей. Естественно помнить о том что БД будет с ними больше весить тоже не помешает.

Если всего этого не требуется, то рекомендую вместо них делать представления, где алиасами и добавлять нужные вычисляемые колонки. Так же категорически рекомендую ни использовать в вычисляемых полях собственные функции или глобальные переменные, будут очень большие проблемы с операцией перегрузки БД (этот же совет относится и к использованию функций и переменных в представлениях). В таких случаях лучше делать хранимые процедуры и их использовать в запросах.
...
Рейтинг: 0 / 0
можно ли в аса делать вычисляемые поля на вычисляемые поля
    #32741642
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS(например у нас есть поле типа Date и мы часто в запросах ставим условие Year(Date) = <Значение>).
А если вместо условия Year(Date) = <Значение> написать
Date >= YMD(<Значение>, 1, 1) and Date < YMD(<Значение> + 1, 1, 1) ?
...
Рейтинг: 0 / 0
можно ли в аса делать вычисляемые поля на вычисляемые поля
    #32741691
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000 ASCRUS(например у нас есть поле типа Date и мы часто в запросах ставим условие Year(Date) = <Значение>).
А если вместо условия Year(Date) = <Значение> написать
Date >= YMD(<Значение>, 1, 1) and Date < YMD(<Значение> + 1, 1, 1) ?
Все зависит для чего Вам это нужно. Если просто так получить все записи за год, то можно и просто поле Date проиндексировать. Если же в запросе еще куча условий на эту таблицу, то Year(Date) будет работать быстрее и эффективнее, так как тут будет равенство, а в Вашем варианте BETWEEN менее эффективен, плюс для составных индексов он всегда означает, что следующие поля индекса уже оптимизатором в запросе использоваться не будут.

Так же вычисляемые поля удобны для организации поиска по полям с большим размером. Например нужно найти запись по полю varchar(200). Делать по этому полю индекс было бы накладно с точки зрения его эффективности и размеров в БД. Легче сделать индекс на вычисляемое поле LEFT(Field, 2) и в запросе искать по условию: ComputedField = Left(<Значение>, 2) AND Field = <Значение>. В итоге будет использован индекс поиска значения по первым 2 буквам, далее уже по найденной ветке индекса на все записи будет применено сканирование по поиску полного соотвествия значения. Пример мной был взят из книги Брека Картера, там довольно много интересных решений (см FAQ , SQL Anywhere Studio 9 - Developers Guid).
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / можно ли в аса делать вычисляемые поля на вычисляемые поля
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]