Холиварный мегасрач - 5: Кеш SQL севера

  1. 9 г. назад

    http://msdn.microsoft.com/ru-ru/library/aa337525(v=sql.105).aspx

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

    Наш сис.админ утверждает что если у нас оперативки выделено SQL серверу 80 Гб, а база весит 70Гб, то она полностью помещается в кеш и никакого общения с HDD не должно наблюдаться. Я грю что это фанатстика и как минимум, изменения таблиц сразу же пишутся на винт. Т.е. постоянное общение SQL и HDD это норма.

    Ответы: (2) (13)
  2. http://msdn.microsoft.com/ru-ru/library/aa337560(v=sql.105).aspx
    Если какая-либо из страницы в буферном кэше изменилась, она не записывается сразу на диск, а помечается как грязная. Это означает, что до момента ее физической записи на диск к странице применялась одна или несколько операций логической записи. При каждой логической операции записи в кэш журнала, который записывает изменения, добавляется запись журнала транзакций. Записи журнала должны быть записаны на диск до того, как связанная с ними «грязная» страница будет удалена из буферного кэша и записана на диск. SQL Server использует метод, называемый упреждающим ведением журнала, который предотвращает запись «грязных» страниц до записи на диск связанных с ними логических записей. Это особенно важно для правильной работы диспетчера восстановления.

    -image-

    Ответы: (7)
  3. БухиТог Наш сис.админ утверждает что если у нас оперативки выделено SQL серверу 80 Гб, а база весит 70Гб, то она полностью помещается в кеш и никакого общения с HDD не должно наблюдаться. Я

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

    Ответы: (3)
  4. (2) а чем аргументировать?

    Ответы: (4)
  5. (3) ну, ты же ссылки все привёл. пусть читает, если не верит

    Ответы: (7)
  6. это ж ты искал на дубовом сисодмина за зарплату грузчика?

    ну чо, нашел

    Ответы: (6) (8)
  7. Гефест ну чо, нашел

    дай догадаюсь... Дуб? :)

  8. (4) так в (1) пишут что записываются изменения на диск только если были изменения в связанных таблицах. А 1С не использует связанные таблицы.

    Ответы: (9)
  9. (5) не, это я 1С-консультанта искал. Нашли студента программиста, отработал 8 месяцев, махнули на студента сис.админа. Студент-программист очень уж бесстрашно лез в 1С. Решили что пусть студент - сис.админ картриджи заправляет, а в 1С не лезет.

  10. БухиТог пишут что записываются изменения на диск только если были изменения в связанных таблицах.

    там не так пишут

    Ответы: (10) (11)
  11. (9)
    «Грязная» страница записывается на диск одним из трех способов.
    Отложенная запись - убирает из кеш-а редко используемые страницы
    Активная запись - SELECT INTO
    Контрольная точка -
    ...
    Используйте параметр конфигурации сервера recovery interval для вычисления интервала между автоматическими контрольными точками для всех баз данных на экземпляре сервера.
    ...
    Указание интервала восстановления

    В обозревателе объектов щелкните правой кнопкой мыши сервер и выберите пункт Свойства.

    Щелкните узел Параметры базы данных.

    В разделе Восстановление в поле Интервал восстановления (в минутах) введите или выберите значение от 0 до 32767 максимального интервала времени в минутах, которое SQL Server должен при запуске выделять на восстановление по журналу каждой базы данных.

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

  12. (9) у тебя на SQL сервер какой выставлен recovery interval (Интервал восстановления) ?

    Ответы: (12)
  13. (11) это не играет роли изменения пишутся на диск в зависимости от того какой вариант транзакции выбран.

  14. (0) Есть пул запросов на запись на диск. В него уходят все запросы на дисковую запись. Специальный поток вытаскивает из пула задание и выполняет дисковую запись.
    Контроллер СУБД исполняет транзакцию в памяти, и помещает в пул задание, запись на диск может, поэтому немного не совпадать по времени, но она есть

или зарегистрируйтесь чтобы ответить!