Цитата: Бэкап транзакций делаю только когда базу надо сжать - обычно утром проверяю.
поэтому у вас лог и растет. В простой модели восстановления SQL Server периодически (это зависит от нескольких факторов - значение recovery interval, заполненность журанал транзакций) делает чекпойнт - скидывает "грязные" (измененные) страницы в кэше SQL Server на диск и проверяет - если какие-то записи в журнале транзакций уже не понадобятся для приведения базы в целостное состояние (все транзакции, связанные с ними завершены и все данные, измененные этими транзакциями уже записаны на диск) при перезапуске сервера, то он их "удаляет" и то место которое было занято этими записями сразу же может использоваться повторно. "Удаляет" в кавычках, т.к. фактически не удаляет, а просто отмечает это место как свободное.
В вашем случае (т.е. при полной модели восстановления), чекпойнт тоже периодически выполняется, но разница в том, что записи из журнала транзакций не удаляются, а просто помечаются как "неактивные" - т.е. не нужные для приведения базы в целостное состояние. И все эти записи остаются в вашем журнале транзакций до тех пор, пока вы не сделаете бэкап журнала транзакций - вот он ваш рост лога. Учтите, что когда вы делаете бэкап с ключевым словом TRUNCATE_ONLY, фактически, никакого бэкапа не делается, а из журнала просто удаляются неактивные записи. Т.е. вы вручную делаете практически тоже самое, что sql server автоматически делает в простой модели восстановления.
Цитата: Где это смотреть? Вечером смотрю - лог нормальный, а утром (не каждым конечно)... что за ночь происходит, непонятно... вроде никто в базе не работал.
Смотрите job'ы (ветка SQL Server Agent в SSMS) и maintenance plan'ы (ветка Management). Раз вырастает за ночь - скорее всего ночью что-то выполняется. Утром вы лог чистите, а следующей ночью все повторяется.
Цитата: Думаю переключить на простую... но не знаю чем это грозит в плане производительности.
Единственное отличие при полной и простой модели восстановления заключается в том, что при полной модели восстановления обычно чаще происходит автоприращение файла. В простой модели восстановления такой проблемы обычно нет - лог набирает "нужный" размер, т.е. такой, что в него помещается вся активная часть, и останавливается в росте. В полной модели - лог растет всегда, если нет периодических бэкапов журнала транзакций (частота определяется эксперементально
). Так вот. Частые автоприращения вредны по нескольким причинам - во-первых, если выставлено автоприращение процентом от текущего размера - тратится процессорное время на расчет величины автоприращения. Во-вторых, файл журнала транзакций, при его увеличении должен быть обязательно заполнен нулями. И на то время, пока он ими заполняется - БД, можно сказать, переходит в режим "только для чтения" - вы ничего не сможете в нее записать до тех пор пока запись об этом не появится в журнале транзакций, который сейчас занят своим "обнулением". На время его приращения, так же, сохраняются все блокировки наложенные теми транзакциями, которые что-то меняли (и еще не завершились) в тот момент, когда файл лога начал увеличиваться.