Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Indexed view for system object error. Как обойти?
|
|||
|---|---|---|---|
|
#18+
Добрый вечер. Подскажите, как обойти проблему авторCannot schema bind view 'dbo.XXX' because it references system object 'sys.columns'. Задача: SQL 2016 SP1 Есть стороннее приложение (axapta). Выдает примерно 10 тысяч запросов вида : (запрашивает перечень полей полнотекстового индекса для заданной таблички) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. каждый запрос Код: sql 1. 2. 3. 4. 5. 6. 7. длится порядка 60-80 миллисекунд. Т.е. в сумме все дает больше 10 минут. Нужно в 10-100 сократить время. При этом, если убрать фильтр по табличке Код: sql 1. то выборка вернет всего навсего 25 строк !!! Т.е. полнотекстовые индексы почти не используются. Обидно тратить 10 минут на постоянную выборку из 25 записей :( Как быть ? Я пытался создать индексированную вьюху по инструкции http://www.sqlservertutorial.net/sql-server-views/sql-server-indexed-view/ тогда в ней будет порядка 25 записей и по-любому запрос к ней должен работать быстрее чем 50 миллисекунд. Тогда можно сильно сократить время ожидания. Но получил ошибку вынесенную в заголовок. Как еще можно решить описанную проблему ? Поменять запрос я к сожалению не могу. Он зашит в exe-ник Аксапты. Если бы запрос шел через хранимую процедуру, то можно было бы ее подправить и дело в шляпе. А тут даже не знаю как быть. Может можно скорректировать план исполнения запроса чтобы он работал быстрее ? План смотрел - сплошные Nested loop и Clustered index seek. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2019, 20:10 |
|
||
|
Indexed view for system object error. Как обойти?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2019, 20:24 |
|
||
|
Indexed view for system object error. Как обойти?
|
|||
|---|---|---|---|
|
#18+
Я думаю, вам на форум по Аксапте, чтобы выяснить, как лечить ее закидоны выполнять по 10к запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2019, 21:06 |
|
||
|
Indexed view for system object error. Как обойти?
|
|||
|---|---|---|---|
|
#18+
Павел677, индексированное представление на системный объект не сделаешь. сделайте пользовательскую таблицу и обновляйте ее время от времени (можно с помощью ddl тригерров), а обращения вашей программы направьте на таблицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2019, 14:28 |
|
||
|
Indexed view for system object error. Как обойти?
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей АлексеевичЯ думаю, вам на форум по Аксапте, чтобы выяснить, как лечить ее закидоны выполнять по 10к запросов. В Аксапте это зашито в Exe-нике. Поэтому ищу обходные пути, как в самом SQL ускорить запрос. Как вариант (и как посоветовали) заполнять свою табличку нужными записями и патчить exe-ник перенаправляя его на свою табличку, но это совсем тонкая хирургия - не хотелось бы так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2019, 09:23 |
|
||
|
Indexed view for system object error. Как обойти?
|
|||
|---|---|---|---|
|
#18+
felix_ffПавел677, ... а обращения вашей программы направьте на таблицу Спасибо за отзыв. Это непросто сделать. Не хочется патчить Exe-ник (штатно мне это недоступно). Может можно вправить мозг CBO, чтобы он выбрал более быстрый план для запроса по системным вьюхам ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2019, 09:25 |
|
||
|
Indexed view for system object error. Как обойти?
|
|||
|---|---|---|---|
|
#18+
Павел677Может можно вправить мозг CBO, чтобы он выбрал более быстрый план для запроса по системным вьюхам ?Так план же и так нормальный. Тут проблема в том, что делается 10 тыщ запросов, а не в том, что план кривой. Конечно, из индексированной вьюхи запрос делался бы раз в 10 быстрее, это да, но если бы прога просто считала при запуске эти 25 строк в память, было бы намного лучше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2019, 10:17 |
|
||
|
Indexed view for system object error. Как обойти?
|
|||
|---|---|---|---|
|
#18+
Павел677, лучше не получите по причине использования object_id('MYTABLE_X0001'). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2019, 11:39 |
|
||
|
Indexed view for system object error. Как обойти?
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовПавел677, лучше не получите по причине использования object_id('MYTABLE_X0001').ТС хочет получить индекс-сиик из одного индекса, что бывло бы возможно, если бы получилось сделать индексированную вьюху. Но, увы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2019, 14:23 |
|
||
|
Indexed view for system object error. Как обойти?
|
|||
|---|---|---|---|
|
#18+
alexeyvgТут проблема в том, что делается 10 тыщ запросов, а не в том, что план кривой. Конечно, из индексированной вьюхи запрос делался бы раз в 10 быстрее, это да, но если бы прога просто считала при запуске эти 25 строк в память, было бы намного лучше... Со всем согласен, но поменять запрос почти невозможно (править exe-ник стремно, там запрос в нем из кусков собирается. В виде одной строки его в скомпилированном коде нет). Поэтому я и подумал что может можно как-то еще улучшить план или обмануть сиквел и создать материализованную вьюху. Там если убрать фильтр по табличке, то возвращается всего 25 (!) записей. Т.е. с материализованной вьюхой оно было летало меньше 1 миллисекунды. Ну а если ее совсем никак нельзя сделать, то может выкрутить план чтобы еще быстрее фильтровало. Изврат, но что же делать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2019, 15:48 |
|
||
|
Indexed view for system object error. Как обойти?
|
|||
|---|---|---|---|
|
#18+
Павел677Ну а если ее совсем никак нельзя сделать, то может выкрутить план чтобы еще быстрее фильтровалоНе, план там идеальный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2019, 19:30 |
|
||
|
Indexed view for system object error. Как обойти?
|
|||
|---|---|---|---|
|
#18+
Павел677но поменять запрос почти невозможно (править exe-ник стремно, там запрос в нем из кусков собирается. В виде одной строки его в скомпилированном коде нет).Ну, зависит от того, как он собирается. Хотя конечно это не дело. Самое правильное - обратиться к разработчикам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2019, 20:37 |
|
||
|
Indexed view for system object error. Как обойти?
|
|||
|---|---|---|---|
|
#18+
Проблема решается так https://www.axforum.info/forums/showthread.php?p=418755#post418755 Все же удалось подкрутить оптимизатор, не смотря на литералы в запросе. Оказывается можно сказать оптимизатору чтобы он работал как-будто там параметры и тогда все быстро. План запроса не перестраивается на каждом вызове и все работает мгновенно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2019, 09:45 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1687377]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 423ms |

| 0 / 0 |
