Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
лень пишет: > Поэтому Sybase рекомендует следующую последовательность действий > - создаются временные таблицы > - заливаются данные > - создаются индексы Этого уже достаточно. > - зовется внутренняя ХП, которая уже и обрабатывает эти данные... Не обязательно звать внутреннюю ХП. И в пределах одной ХП может работать, только надо это проверить на конкретной версии ASE. (В смысле где-то может и не работать). Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2007, 19:34 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
MasterZiv Не обязательно звать внутреннюю ХП. И в пределах одной ХП может работать, только надо это проверить на конкретной версии ASE. (В смысле где-то может и не работать). работать то будет, но только оптимизатор в данном случае будет считать, что таблица состоит из 10 столбцов и 10 записей в них ;) по крайней мере в 12.5 ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2007, 23:16 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
MasterZiv Fantasmo пишет: > Есть только одна проблема. Вроде бы ASE 12.0 не будет использовать > индексы в процедуре на временные таблицы. > т.е в таком случае индекс на временную таблицу просто лишняя трата времени Я думаю что это голословное заявление. Вообще про оптимизатор не стоит говорить чего-то определенного. Хотя фраза "Вроде бы" немного исправляет дело... Короче, в 11.9 замечательно в процедурах использовались индексы на временные таблицы. Почему бы им не быть использоваными в 12.0 ? Posted via ActualForum NNTP Server 1.3 Скажу подругому. Работать не будет. 1) Проверено уже 2) Оптимизатор на момент компиляции не знает про индексы и данные во временной таблице. Так что индекс просто не будет использоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 09:05 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
komrad пишет: > работать то будет, но только оптимизатор в данном случае будет считать, > что таблица состоит из 10 столбцов и 10 записей в них ;) по крайней мере > в 12.5 ;) Нет, не обязательно. Я хотел написать, но почему-то не написал. Ерик Майнер , ведущий инженер группы оптимизатора ASE, обсуждал как-то именно этот случай в (кажется) sybase.public.ase.performance+tuning Он сказал, что после создания индекса увеличивается какой-то внутренний счетчик состояния схемы данных, после чего процедура переоптимизируется (план перестраивается), и в этом случае должна уже быть реальная статистика о таблице, поскольку ее собирает CREATE INDEX. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 10:38 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
Fantasmo пишет: > Короче, в 11.9 замечательно в процедурах использовались индексы на временные > таблицы. Почему бы им не быть использоваными в 12.0 ? > Скажу подругому. Работать не будет. > 2) Оптимизатор на момент компиляции не знает про индексы и данные во > временной таблице. Да, не знает. Так что индекс просто не будет использоваться. Во-первых, смотри мой пред. пост. Во-вторых, ну хорошо, не хочет оптимизатор брать индекс сам - можно же и хинт написать, (INDEX 1) , как правило, одного индекса там достаточно. Это старинная техника, применялась еще вроде как в 11.5 и 11.0. Ну могу я конечно путать конкретные версии, но это там между 11.0 и 11.5. 11.9 уже современный достаточно сервер, мы с ним работали много, и работали там индексы на временные таблицы. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 10:45 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
MasterZiv Fantasmo пишет: Во-первых, смотри мой пред. пост. Во-вторых, ну хорошо, не хочет оптимизатор брать индекс сам - можно же и хинт написать, (INDEX 1) , как правило, одного индекса там достаточно. Это старинная техника, применялась еще вроде как в 11.5 и 11.0. Ну могу я конечно путать конкретные версии, но это там между 11.0 и 11.5. 11.9 уже современный достаточно сервер, мы с ним работали много, и работали там индексы на временные таблицы. Posted via ActualForum NNTP Server 1.3 Хинт не прокатит Пробовал. Он не используется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 11:09 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
MasterZiv пишет: Еще ссылок. http://groups.google.com/group/sybase.public.ase.performance+tuning/search?group=sybase.public.ase.performance%2Btuning&q=indices+on+temp+table Просто хочу подчекрнуть, что это лишь миф, что во временных таблицах не могут использоваться индексы. Они МОГУТ использоваться. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 11:41 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
MasterZiv пишет: Вот ссылка на один из разговоров на эту тему. Евгений Корольков и я там кстати тоже присутствовали. http://groups.google.com/group/sybase.public.ase.performance+tuning/tree/browse_frm/thread/22f143a67e3431f7/d7121fb6bc0d1c3f?_done=%2Fgroup%2Fsybase.public.ase.performance%2Btuning%2Fbrowse_frm%2Fthread%2F22f143a67e3431f7%2Fd7121fb6bc0d1c3f%3Flnk%3Dgst%26q%3DEric%2BMiner%2Bindexes%2Btemporary%2Btable%2Busing%26rnum%3D2%26&lnk=gst&q=Eric+Miner+indexes+temporary+table+using&rnum=2 Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 11:41 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
А можно вкратце как использовать все таки индекс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 12:29 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
FantasmoА можно вкратце как использовать все таки индекс? А какие ваши доказательства того, что он не используется? Хоть бы план запроса привел. А то все "зимы не будет, зимы не будет"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 14:33 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
лень FantasmoА можно вкратце как использовать все таки индекс? А какие ваши доказательства того, что он не используется? Хоть бы план запроса привел. А то все "зимы не будет, зимы не будет"... если делать так create table #t insert into #t create index #t_01 select ... from #t (index #t_01)... Использоваться он не будет 100%, будет обычный table scan. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 14:44 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
Я бы не был бы столь самоуверен. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Правда сервер 12.5.3, но мне помнится что и в 12.0 такое же поведение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 15:36 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
:D Server Message: Number 307, Severity 10 Line 11: Index 'idx_01' specified as optimizer hint in the FROM clause of table '#t' does not exist. Optimizer will choose another index instead. QUERY PLAN FOR STATEMENT 1 (at line 1). STEP 1 The type of query is CREATE TABLE. QUERY PLAN FOR STATEMENT 2 (at line 2). STEP 1 The type of query is CREATE INDEX. TO TABLE #t QUERY PLAN FOR STATEMENT 3 (at line 3). STEP 1 The type of query is DECLARE. QUERY PLAN FOR STATEMENT 4 (at line 4). STEP 1 The type of query is SELECT. QUERY PLAN FOR STATEMENT 5 (at line 5). STEP 1 The type of query is COND. QUERY PLAN FOR STATEMENT 6 (at line 7). STEP 1 The type of query is INSERT. The update mode is direct. TO TABLE #t QUERY PLAN FOR STATEMENT 7 (at line 8). STEP 1 The type of query is SELECT. QUERY PLAN FOR STATEMENT 8 (at line 10). STEP 1 The type of query is SET OPTION ON. QUERY PLAN FOR STATEMENT 9 (at line 11). STEP 1 The type of query is SELECT. FROM TABLE #t Nested iteration. Table Scan. Forward scan. Positioning at start of table. Using I/O Size 4 Kbytes for data pages. With MRU Buffer Replacement Strategy for data pages. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 16:06 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
Этот результат получился если всю процедуру запустить. А если по частям, сначала таблица потом инсерт и отдельно запустить селект, то выборка идет по индексу, как у вас... И что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 16:09 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
FantasmoЭтот результат получился если всю процедуру запустить. А если по частям, сначала таблица потом инсерт и отдельно запустить селект, то выборка идет по индексу, как у вас... И что делать? То что рекомендует Sybase - разбить на 2 батча, или 2 процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 16:15 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
Fantasmo пишет: > если делать так > > create table #t > insert into #t > create index #t_01 > > select ... > from #t (index #t_01)... > > Использоваться он не будет 100%, будет обычный table scan. Так я же говорю, select ... from #t (index 1)... надо писать. Естественно, по (index #t_01) он использоваться НЕ будет. Потому что ПЛАН ЗАПРОСА ПРОЦЕДУРЫ СОЗДАЕТСЯ ДО ЕЕ ВЫПОЛНЕНИЯ, и индекс #t_01 в этот момент еще не существует. А вот если указывать индекс по номеру, то он БУДЕТ использоваться. (хотя это и кажется странным, видимо при этом в план тупо пишется идентификатор индекса минуя фазу разрешения имени индекса в его идентификатор и поэтому это прокатывает) Номера индексов- это идентификаторы их в SYSINDEXES. 0 - сама таблица (forced table scan) 1 - кластерный индекс 2 - первый некластерный, и т.д. Но обычно хватает ОДНОГО индекса, который единственный обычно. На DOL-таблицах индекса 1 нет, там сразу с 2-х. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 18:38 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
лень пишет: > То что рекомендует Sybase - разбить на 2 батча, или 2 процедуры. Господа, ну сколько говорить-то можно - нет, не обязательно разбивать. Это очень устаревшая техника, сейчас никакого смысла это делать нет. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 18:40 |
|
||
|
Как ускорить?
|
|||
|---|---|---|---|
|
#18+
MasterZiv лень пишет: > То что рекомендует Sybase - разбить на 2 батча, или 2 процедуры. Господа, ну сколько говорить-то можно - нет, не обязательно разбивать. Это очень устаревшая техника, сейчас никакого смысла это делать нет. Posted via ActualForum NNTP Server 1.3 Ну не знаю :) Просто когда в июне 2005-го я слушал г-на Хромова :) , он рассказывал именно о таком подходе :) Возможно с тех пор много воды утекло... Но согласен с тем, что не обязательно так делать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 21:03 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34311660&tid=2012270]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 392ms |

| 0 / 0 |
