2009-02-11 5 views
1

Этот запрос, кажется, работает невероятно медленно (25 секунд на 4 миллиона записей!) На Sybase v10 в базе данных клиентов:Медленный запрос/отключить кэш - Sybase Adaptive Server

Select max(tnr) from myTable; 

С TNR является первичным ключом ,

Если я запустил его 1000x на нашем сервере, он, кажется, быстро (15 мс ...), что заставляет меня думать, что это потому, что результат запроса кэшируется. Есть ли способ отключить кеш для этого запроса (или всей базы данных) в Sybase для воспроизведения этой проблемы?

Я пробовал:

call sa_flush_cache(); 
call sa_flush_statistics(); 

Но, похоже, не сделать трюк.

+0

Возможно, проблема заключается не в том, что ваши результаты кэшируются, но что проблема с сервером вашего клиента –

+0

Возможно, проверьте оба плана запросов, чтобы убедиться, что они оба используют любые применимые индексы. Обычно запросы MAX() выигрывают от обратного сканирования индекса. – Allethrin

+0

Сообщите клиенту обновить! V10 настолько старый и завершенный из-за поддержки, я на самом деле поражен тем, что есть еще один в своем роде. – Vincent

ответ

0

Попробуйте dbcc cacheremove

+0

К сожалению, v10, похоже, не имеет команды dbcc. – Carra

1

К сожалению DBCC cacheremove не будет работать, так как не ясно вниз страницы из кэша, а удаляет дескриптор и помещает его обратно на свободной цепи.

Помимо перезапуска сервера данных единственным способом сделать это является привязка объекта к кешу, а затем выполнить ваши тесты, затем отвязать объект, который удалит все страницы из кеша.

 Смежные вопросы

  • Нет связанных вопросов^_^