• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Вычислять в виде или в документе?

Gandliar

Lotus Team
16.02.2004
556
26
BIT
40
Здравствуйте!

Есть база под веб, 10 000 документов.
Есть 20 видов, в которых вычисляется 5 различных формул отображения под веб.
Также в базе есть полнотекстовый индекс.

Вот и вопрос, для оптимальной производительности вычислять формулы в документе (создать 5 полей для этого) или оставить вычисления в виде.

Формулы большие, много @if и преобразований.

Заранее благодарю.
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
в видах, только виды на отдельный диск и обновлять по расписанию

обновив док - это само по себе заставит индексер обновить все 20 видов, потом ещё ФТИндекс и т.д.
считаю что док обновлять смысла нет вообще
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
ряд факторов:
- FT будет считаться по полям дока и не зависит от формул (формула уже вычислена)
- индексы вьюшек - чем сложнее, тем "дольше" обновление при появление нового дока, индексы больше
- формула в доке/вьюшке - а нафига? надо вычислять поле - пишем скрипт, суем его в QS. Профит еще и в вычислениях бэкенда - не надо привлекать формулы (через Evaluate) или ComputeWithForm + место для кода одно (либа)
 
  • Нравится
Реакции: kolka

alexas1

Green Team
10.04.2014
1 202
225
BIT
37
обновив док - это само по себе заставит индексер обновить все 20 видов, потом ещё ФТИндекс и т.д.
считаю что док обновлять смысла нет вообще
1 обновив док, формула просчитается ток 1 раз и индексёр просто возьмёт значение поля (в котором уже всё вычислено)
если формула в колонке 20-и видов - она будет просчитана 20 раз
2 если док изменяет агент (напр из под Вэба), он же может изменить и поле для показа в виде (вычисляемое в форме, если это там нужно и есть), по той же формуле (или её LS\JS\Java эквиваленту) - максимум быстродействия
 

Gandliar

Lotus Team
16.02.2004
556
26
BIT
40
1 обновив док, формула просчитается ток 1 раз и индексёр просто возьмёт значение поля (в котором уже всё вычислено)
если формула в колонке 20-и видов - она будет просчитана 20 раз
2 если док изменяет агент (напр из под Вэба), он же может изменить и поле для показа в виде (вычисляемое в форме, если это там нужно и есть), по той же формуле (или её LS\JS\Java эквиваленту) - максимум быстродействия

А с другой стороны не будет ли (от дополнительного килобайта полей в доке) тормозить полнотекстовый индекс? При обновлении и при поиске.
По-моему некоторые поля нельзя выкинуть от индексирования?
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
37
А с другой стороны не будет ли (от дополнительного килобайта полей в доке) тормозить полнотекстовый индекс? При обновлении и при поиске.
По-моему некоторые поля нельзя выкинуть от индексирования?
Хз, что перевесит. Навскидку, одно доп поле в форме для полнотекстового против 20 считаемых в индексе вида выглядит помягше)))
Затестить надо
 
  • Нравится
Реакции: Gandliar

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Буду делать поля, видов много а полнотекстовый индекс один. А там посмотрим, будет ли эффект. Почитал еще в инете обзоры - склоняюсь к полям.
ну да, придётся индексу ещё и эти новые поля учитывать ;)
 

NetWood

Lotus Team
17.04.2008
545
93
BIT
8
в видах, только виды на отдельный диск и обновлять по расписанию

обновив док - это само по себе заставит индексер обновить все 20 видов, потом ещё ФТИндекс и т.д.
считаю что док обновлять смысла нет вообще
Вот тут однозначно поддерживаю. Гораздо проще и эффективнее написать формулы во вьюшке, но сделать, например, одно list-поле, в которое собрать информацию из других доков заранее. Именно так я и делал, когда подключался к Яндекс-Маркету. Уже лет десять полет нормальный). Много полей в документе излишне нагружают индексер и усложняют архитектуру.
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
37
Вот тут однозначно поддерживаю. Гораздо проще и эффективнее написать формулы во вьюшке, но сделать, например, одно list-поле, в которое собрать информацию из других доков заранее. Именно так я и делал, когда подключался к Яндекс-Маркету. Уже лет десять полет нормальный). Много полей в документе излишне нагружают индексер и усложняют архитектуру.
индексёр больше грузит не кол-во полей с инфой, а общий объем этой инфы в индекс (эт для полнотекстового, канеш)
А про индекс вида даж тестить бессмысленно - тяжёлая формула в колонке проиграет всегда, против её же в доке.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!