powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли запретить вытеснять из кэша определенную таблицу?
30 сообщений из 30, показаны все 2 страниц
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068737
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую.

Есть небольшая, но оччень нагруженная таблица, около 8 Гб.


Смотрю Page life expectancy когда падает, запросы к этой таблице критично тормозят.


Скажите, можно ли запретить вытеснять из кэша определенную таблицу?
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068738
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms
Приветствую.

Есть небольшая, но оччень нагруженная таблица, около 8 Гб.


Смотрю Page life expectancy когда падает, запросы к этой таблице критично тормозят.


Скажите, можно ли запретить вытеснять из кэша определенную таблицу?


Когда-то давно можно было.
Сейчас этого можно добиться используя in-memory таблицы
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068739
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ можно поставить костыль, который будет регулярно начитывать таблицу в память
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068744
Slava_Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms,

Лучше решить почему PageLive падает, а не что-то изобретать.
Если он у вас итак маленький, то Inmemory даже не пытайтесь создавать таблицы, иначе можете получить , что база не поднимется в один момент из-за нехватка памяти для данных таблиц..
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068746
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLex
ssms
Приветствую.

Есть небольшая, но оччень нагруженная таблица, около 8 Гб.


Смотрю Page life expectancy когда падает, запросы к этой таблице критично тормозят.


Скажите, можно ли запретить вытеснять из кэша определенную таблицу?


Когда-то давно можно было.
Сейчас этого можно добиться используя in-memory таблицы


Эх, раньше и трава зеленее была..

А в какой версии это можно было делать? в 2008-й уже нельзя?
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068747
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad
+ можно поставить костыль, который будет регулярно начитывать таблицу в память



тоже об этом подумал.


я так понимаю можно просто SELECT * FROM таблица и все.
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068748
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Slava_Nik
ssms,

Лучше решить почему PageLive падает, а не что-то изобретать.
Если он у вас итак маленький, то Inmemory даже не пытайтесь создавать таблицы, иначе можете получить , что база не поднимется в один момент из-за нехватка памяти для данных таблиц..



Это само собой.

Просто табличка маленька относительно объема ОЗУ, но очень критичная...
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068749
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms
msLex
пропущено...


Когда-то давно можно было.
Сейчас этого можно добиться используя in-memory таблицы


Эх, раньше и трава зеленее была..

А в какой версии это можно было делать? в 2008-й уже нельзя?

2000

https://www.sqlskills.com/blogs/paul/dbcc-pintable/
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068750
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad
ssms
пропущено...


Эх, раньше и трава зеленее была..

А в какой версии это можно было делать? в 2008-й уже нельзя?

2000

https://www.sqlskills.com/blogs/paul/dbcc-pintable/


да, это и правда давно (
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068751
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms
Slava_Nik
ssms,

Лучше решить почему PageLive падает, а не что-то изобретать.
Если он у вас итак маленький, то Inmemory даже не пытайтесь создавать таблицы, иначе можете получить , что база не поднимется в один момент из-за нехватка памяти для данных таблиц..



Это само собой.

Просто табличка маленька относительно объема ОЗУ, но очень критичная...


и нужны все 8ГБ?
может есть запросы, сканирующие её и их можно оптимизировать?
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068761
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad
ssms
пропущено...



Это само собой.

Просто табличка маленька относительно объема ОЗУ, но очень критичная...


и нужны все 8ГБ?
может есть запросы, сканирующие её и их можно оптимизировать?


Да там по индексу доступ.

Я вот думаю, как индекс из кэша не выгружать...
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068774
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms,

поднимите инстанс для таких таблиц, создайте алиас на основном сервере.
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068779
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

Ага, и поимейте кучу проблем с джойнами таких таблиц )
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068780
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так же с согласованным резервированием )
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068863
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос покажется странным....


Но можно ли как-то выгрузить из буфера определенный индекс\таблицу?
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068864
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кроме как ее затранкейтить или дропнуть естественно...


Объясняю ситуацию:

есть маленькая но чень нагруженная таблица, которую нельзя выгружать.

а есть несколько огромных таблиц, которые втягиваются в буфер и полностью его занимают, при этом они используююются не для оперативной работы, а различных разовых отчетов и их можно выгружать спокойно.
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068865
Тяп-ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В сторону Resource Governor уже смотрели?
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068871
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms
Кроме как ее затранкейтить или дропнуть естественно...


Объясняю ситуацию:

есть маленькая но чень нагруженная таблица, которую нельзя выгружать.

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


Интересуюсь.
С чего вы взяли, что "она выгружается"?

Если она "очень нагруженная", т.е. к ней идут обращения постоянно - ничего выгружено не будет.
Займитесь чем-то более полезным.
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068873
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222

Займитесь чем-то более полезным.


Чем например?
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068874
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222


Если она "очень нагруженная", т.е. к ней идут обращения постоянно - ничего выгружено не будет.


Она не "очень нагруженная" а "очень критичная", к ней запросы раз в несколько минут, но они должны отрабатывать быстро.
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068878
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms
aleks222


Если она "очень нагруженная", т.е. к ней идут обращения постоянно - ничего выгружено не будет.


Она не "очень нагруженная" а "очень критичная", к ней запросы раз в несколько минут, но они должны отрабатывать быстро.


Ну дык, не я же сказал "нагруженная". Ща окажется, что она и вовсе не нагруженная, и ненужная вовсе.
Но надо, из прынципа.

Запрос "раз в минуту" мог бы и не торопиться.
Но если он "торопится"... нууу поставьте джоб "раз в секунду" select count(*) from Table.
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068882
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222

Но если он "торопится"... нууу поставьте джоб "раз в секунду" select count(*) from Table.


Доступ у таблице по некластерному индексу.

count(*) точн поможет? Он же по идее втянет в буфер клстерный индекс.
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068944
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms
aleks222

Но если он "торопится"... нууу поставьте джоб "раз в секунду" select count(*) from Table.


Доступ у таблице по некластерному индексу.

count(*) точн поможет? Он же по идее втянет в буфер клстерный индекс.

Я ж не видал вашего "запроса".

Ну заколбасьте

select count(*) from Table where cast(field1 as nvarchar) = ''

а еще лучше, просто "типичный запрос".
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068947
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms
aleks222

Но если он "торопится"... нууу поставьте джоб "раз в секунду" select count(*) from Table.


Доступ у таблице по некластерному индексу.

count(*) точн поможет? Он же по идее втянет в буфер клстерный индекс.


добавьте хинт with (index( index_name ))
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068949
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssms



Скажите, можно ли запретить вытеснять из кэша определенную таблицу?


Сделать её IN-MEMORY ....
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068952
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрю Page life expectancy когда падает, запросы к этой таблице критично тормозят.

Очевидно, запросы тормозят не только к этой таблице при уменьшении PLE. Если у вас кто-то гоняет мега-отчеты "от забора и до вечера" (судя по "когда падает", это происходит не всегда), то разрешите выполнение отчетов вне часов рабочей нагрузки или перенесите отчеты на другой сервер, например.
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068960
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222
ssms
пропущено...


Доступ у таблице по некластерному индексу.

count(*) точн поможет? Он же по идее втянет в буфер клстерный индекс.

Я ж не видал вашего "запроса".

Ну заколбасьте

select count(*) from Table where cast(field1 as nvarchar) = ''

а еще лучше, просто "типичный запрос".


Ого. как хитро.

Так и сделал, благодарю.
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40068961
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLex
ssms
пропущено...


Доступ у таблице по некластерному индексу.

count(*) точн поможет? Он же по идее втянет в буфер клстерный индекс.


добавьте хинт with (index( index_name ))


И это добавил.

Спасибо !
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40071949
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. По исходному вопросу.

Конечно можно сделать и так, как вы задумали (постоянно начитывать и держать в буфере). Может это даже и правильно для какой-то специфической задачи (вам нужны микросекунды отклика?). Из описания этого не видно. Для обычной же ситуации это какой-то чудовищный костыль.

Затем. Самый грамотный путь реализации этого пути - делать таблицу in memory.

Однако есть путь более правильный (для обычных ситуаций):

1.1 Собрать коллекцию основных запросов к целевой таблице, проанализировать их, выделить группы, для них создать целевые индексы и матвьюхи (например с выборкой по фильтрующему индексу). После запросы переписать на обращение к матвьюхам.

1.2 Собссно решать проблему в её источнике. Т.е. в том, что описано вами ниже:


ssms

Объясняю ситуацию:

есть маленькая но очень нагруженная таблица, которую нельзя выгружать.

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


т.е. 1.2 -> 2

2. Если вы как компания не доросли до DWH/BI (что странно, если вы считаете таблицу 8 Гиг маленькой), то решить такое можно и в рамках обычной базы несколькими путями:

2.1 Хранимые отчёты. Заранее сформированные по расписанию и хранимые готовые данные отчётов по самым востребованным параметрам сбора отчётов. И их нужно только на форму отчёта подтянуть.

2.2 Хранимые предрассчитанные по расписанию агрегатные данные для отчётов. Такой минисрез по псевдокубу.

2.3 Оптимизация имеющихся запросов как они есть (наверняка ведь есть что оптимизировать).

2.4 Оптимизация обращения к таблицам в целом. Вьюхи, матвьюхи, индексы.

2.5 Изменение структуры данных под задачу. Например можно не считать обороты по поставщику за период каждый раз налету, а иметь такое поле в специальной таблице. Куда вносить изменения при каждой транзакции по поставщику. Там же остаток по счёту, переходящий остаток по счёту клиента и т.п.
...
Рейтинг: 0 / 0
Можно ли запретить вытеснять из кэша определенную таблицу?
    #40071995
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
In-memory имеет достаточно много неприятных моментов, ограничивающих возможности.
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли запретить вытеснять из кэша определенную таблицу?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]