:: Не фоксом единым
Re: Oracle. Использование индексов в join
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
PaulWist
Вот я и спрашиваю где и как хранишь этот "определенный" порядок (на клиенте, на сервере, в теле кода, ... и соотвественно, какой механизм применяешь для "наложения" ордера)?
Если имеется в виду хранение пользовательской сортировки (юзер отсортировал, и хочет что бы след. раз так же было) то я из фокса храню в реестре)
А может не угадал)
Igor Korolyov
Кстати, не знаю как в mssql, а в оракле далеко не все запросы (особенно факторизованные) выполняются "чисто над исходными таблицами". Зачастую кусок запроса (промежуточный результат) "материализуется" - т.е. по сути создаётся своего рода временная таблица, и дальнейшие шаги исполнения уже с этой таблицей и работают. При том есть специальный хинт позволяющий "подсказать" оптимизатору что вот этот кусок/подзапрос следует материализовать - если он сам вдруг посчитает что этого делать не стоит.
Для некоторых типов запросов это сокращает затраты на несколько порядков.
Естественно в mssql примерно так же)


------------------
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Аспид
Если имеется в виду хранение пользовательской сортировки (юзер отсортировал, и хочет что бы след. раз так же было) то я из фокса храню в реестре)
А может не угадал)
Ну если вопрос про это был, то значит я его не понял вообще


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Igor Korolyov
Ну если вопрос про это был, то значит я его не понял вообще
Не могу представить как иначе его трактовать)
Ну Паша нас рассудит)))


------------------
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Аспид
PaulWist
Вот я и спрашиваю где и как хранишь этот "определенный" порядок (на клиенте, на сервере, в теле кода, ... и соотвественно, какой механизм применяешь для "наложения" ордера)?
Если имеется в виду хранение пользовательской сортировки (юзер отсортировал, и хочет что бы след. раз так же было) то я из фокса храню в реестре)
А может не угадал)

"Угадал", именно это я имел в виду.

PS Володь, спасибо за "перевод" моих слов


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Вот ведь как бывает


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Igor Korolyov
Вот ведь как бывает

Фу, с одним разобрались

Теперь о "первом вопросе":

Igor Korolyov
... Я вообще предпочитаю order в самый последний момент в запросы добавлять, и только если это реально необходимо (например клиент не может сам упорядочивать принимаемые данные, или нужен механизм "страничного" доступа) - не то чтобы серверу было "тяжело" это делать, но это таки влияет на работу оптимизатора...

Где хранишь условия сортировки (order by ...) и как их накладываешь на клиенте (сам механизм какой)?


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
;) Я храню в реестре, колонку грида, по которой сортировка.
И по ней создаю индекс.
Вообще без order by


------------------
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Аспид
;) Я храню в реестре, колонку грида, по которой сортировка.
И по ней создаю индекс.
Вообще без order by

Это я понял (ещё на прошлой неделе)

Вопрос такой: как хранишь сортировку по нескольким полям?


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Пришлось в код залезть, посмотреть)))
Вот метод SaveGrid базового грида.
IF This.ColumnCount > 0
* SORT
lcSection = 'Forms_settings\' + ALLTRIM(UPPER(Thisform.name)) + '\' + ALLTRIM(UPPER(This.name))
= rwrst(2,lcSection,'ColumnSort',ALLTRIM(This.ColumnSort))
* HEADER
lnHH = This.HeaderHeight
lnHH = rwrst(2,lcSection,'HeaderHeight',ALLTRIM(STR(lnHH)))
FOR i = 1 TO This.ColumnCount
lcSection = 'Forms_settings\' + ALLTRIM(UPPER(Thisform.name)) + '\' + ALLTRIM(UPPER(This.name)) + '\' + ALLTRIM(This.columns[i].name)
* WIDTH
lnCW = This.columns[i].Width
rwrst(2,lcSection,'Width',ALLTRIM(STR(lnCW)))
* VISIBLE
lnCV = IIF(This.columns[i].visible,1,0)
lnCV = rwrst(2,lcSection,'Visible',ALLTRIM(STR(lnCV)))
* ORDER
lnCO = This.columns[i].ColumnOrder
lnCO = rwrst(2,lcSection,'ColumnOrder',ALLTRIM(STR(lnCO)))
ENDFOR
Return .T.
ELSE
Return .F.
ENDIF
rwrst - функция записи в реестр.
Видно что по 2м полям я не индексирую.
Понадобилось бы. Что нибудь придумал. Поменял базовый метод.
Так у меня сортировка по дабл клику, нету по двум полям.
Мне вот повезло, не понадобилось)))


------------------
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
Аспид
Пришлось в код залезть, посмотреть)))

1. ОК.

Аспид
IF This.ColumnCount > 0
* SORT
lcSection = 'Forms_settings\' + ALLTRIM(UPPER(Thisform.name)) + '\' + ALLTRIM(UPPER(This.name))

2. ЩА покритикую

Т.е. на форме, имена гридов должны быть уникальны (даже те которые лежат на PageFrame иначе на них будет "одинаковая" сортировка, высота хедеров итд)!


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
PaulWist
2. ЩА покритикую
давай)))
Ну очевидно, что данный тип грида, никогда не лежит в контейнере.
Иначе дописывал бы имя контейнера.
Но опять повезло))) Не использую)
Нет у меня гридов в PageFrame.
(Пожалуй если б были, проще было бы разные имена дать)
PageFrame - вообще как то не люблю...
Очень редко.
Что помню, форма редактирования-ввода договоров.
ТАМ СТОКА ВСЕГО((((


------------------
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
spinz

Сообщений: 5263
Дата регистрации: 21.01.2016
Зачем писать что-то в реестр? Вот сел пользователь за другую машину, ну или на этой винду переставили - и все его локальные настройки идут лесом
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
spinz
Зачем писать что-то в реестр? Вот сел пользователь за другую машину, ну или на этой винду переставили - и все его локальные настройки идут лесом

Холивар по этому поводу был несколько раз, сошлись на том, что у кого как исторически сложилось - так и будет использоваться.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
spinz
Зачем писать что-то в реестр? Вот сел пользователь за другую машину, ну или на этой винду переставили - и все его локальные настройки идут лесом
Странный вопрос. Странные предпосылки.
Ну да, если новая машина, то все настройки приходится под себя перелепить.
Паша вот в БД хранит.
Я полагаю не стоит.


------------------
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
spinz

Сообщений: 5263
Дата регистрации: 21.01.2016
Аспид
Паша вот в БД хранит.

Это выглядит гораздо рациональней засирания реестра.
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
spinz
Это выглядит гораздо рациональней засирания реестра.
А зачем он тогда?
Пусть другие засирают?)))
Смысла в споре не вижу.


------------------
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
spinz

Сообщений: 5263
Дата регистрации: 21.01.2016
Никто не спорит.

Я лишь указал на правду, а стало быть истену.
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
PaulWist
Т.е. на форме, имена гридов должны быть уникальны (даже те которые лежат на PageFrame иначе на них будет "одинаковая" сортировка, высота хедеров итд)!

Тоже было дело озабочивался именованием обьектов для хранения параметров.
В итоге в IDE горячие кнопки или пункт доп.меню. А там типа _cliptext= GUID(). Ну и далее в доп.свойства требуемого обьекта или формы. Чтоб перемещать по иерархии без проблем и у юзера всегда уникальник. Хоть форму переименовал, хоть грид куда запрятал.
Собственно хранение через метод некоторого класса. А он умеет и в бд сохранить и в реестре. А уж куда в данном приложении сохрять задается при старте. А продвинутый юзер может и сам указать.
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
spinz
Никто не спорит.
Я лишь указал на правду, а стало быть истену.

[sm016]
Просвяти нас как ты хранишь и где?
А уж... ответ мы найдем


------------------




Исправлено 1 раз(а). Последнее : Аспид, 08.08.17 15:57
Ratings: 0 negative/0 positive
Re: Oracle. Использование индексов в join
spinz

Сообщений: 5263
Дата регистрации: 21.01.2016
В БД конечно
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 9 (Гостей: 9)

© 2000-2024 Fox Club 
Яндекс.Метрика