Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 December 07

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Dmitry
опять же, согласно документации 8 частей tempdb должно быть в самый раз
Да, 8 в самый раз. Если она вырасла, будучи разбитой на части, то сто процентов вы столкнётесь со схожим по объёму приростом при меньшем числе файлов. просто каждый вырастет больше. ограничивать tempdb нельзя - нельзя заткнуть пипиську и расхотеть писать. КОнчится место в tempdb - экземпляр СУБД встанет. Ищите что жрёт место - кривые запросы, ребилд индексов с SORT_IN_TEMPDB и т.п.
источник

D

Dmitry in SqlCom.ru - Стиль жизни SQL
Oleg T
Да, 8 в самый раз. Если она вырасла, будучи разбитой на части, то сто процентов вы столкнётесь со схожим по объёму приростом при меньшем числе файлов. просто каждый вырастет больше. ограничивать tempdb нельзя - нельзя заткнуть пипиську и расхотеть писать. КОнчится место в tempdb - экземпляр СУБД встанет. Ищите что жрёт место - кривые запросы, ребилд индексов с SORT_IN_TEMPDB и т.п.
Да это понятное дело, что ограничивать нельзя. Однако, она вынесена со служебными на отдельный SSD массив, который она бесконтрольно забивает, если ей хочется)
источник

AN

Aleksey Nesterov in SqlCom.ru - Стиль жизни SQL
Oleg T
Много где это встречал, наверное самый простой способ понять почему так - почитать про частичное восстановление баз данных. При повреждении PRIMARY нельзя восстановить часть базы - только полный бэкап, логи и всё такое. если побъётся вторичная файловая группа, то можно в онлайне ее восстановить и возможно даже никто не заметит. Последнее верно для Enterprise.
все равно вся бд должна быть открыта в однопользовательском режиме - простои будут в любом случае
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Aleksey Nesterov
все равно вся бд должна быть открыта в однопользовательском режиме - простои будут в любом случае
Нет, это не так. Я преподавал курс по аварийному восстановлению баз данных.
источник

AN

Aleksey Nesterov in SqlCom.ru - Стиль жизни SQL
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Сейчас кину пруф от Kimberly Tripp от 2008 года.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Удалили подлецы....
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Там короче, есть момент недоступности совсем краткий. т.е. блокировка уровня БД. Но в остальное время БД остаётся доступной.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Dmitry
Да это понятное дело, что ограничивать нельзя. Однако, она вынесена со служебными на отдельный SSD массив, который она бесконтрольно забивает, если ей хочется)
Можно отловить кто юзает, делая снимки из sys.dm_db_session_space_usage например https://docs.microsoft.com/ru-ru/sql/relational-databases/system-dynamic-management-views/sys-dm-db-session-space-usage-transact-sql?view=sql-server-ver15
источник

D

Dmitry in SqlCom.ru - Стиль жизни SQL
Спасибо за наводку
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Вот пример использования частичного восстановления о котором я говорил. https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/example-online-restore-of-a-read-write-file-full-recovery-model?view=sql-server-ver15
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Период недоступности имеется - нужна эксклюзивная блокировка БД в начале восстановления. После завершения восстановления файловой группы БД становится частично доступной. Таким образом можно очень большую БД поднимать по частям. Можно отдельные старые данные вынести  в RO файловую группу и тогда её можно один раз забэкапить и больше не бэкапить. Если будет надо восстановиться, то можно будет взять старый бэкап RO файловой группы и последний бэкап RW файловых групп и они склеятся нормально, если файловая группа оставалась RO всё это время и не переводилась в RW.
источник

DS

Dmitry Sidorov in SqlCom.ru - Стиль жизни SQL
Всем привет. Подскажите пожалуйста, вот в запросе SELECT * FROM `articles WHERE (title LIKE "%":string"%" OR keywords LIKE "%":string"%") AND hide = 0 LIMIT 30 стоит лимит на 30 строк. А можно в этот же запрос как-то пихнуть количество строк которые есть в базе, даже если их больше 30
источник

T

Timus in SqlCom.ru - Стиль жизни SQL
Убрать лимит?
источник

АА

Андрей Агеев... in SqlCom.ru - Стиль жизни SQL
Dmitry Sidorov
Всем привет. Подскажите пожалуйста, вот в запросе SELECT * FROM `articles WHERE (title LIKE "%":string"%" OR keywords LIKE "%":string"%") AND hide = 0 LIMIT 30 стоит лимит на 30 строк. А можно в этот же запрос как-то пихнуть количество строк которые есть в базе, даже если их больше 30
см. count(*)over()
источник

DS

Dmitry Sidorov in SqlCom.ru - Стиль жизни SQL
Timus
Убрать лимит?
если убрать лимит то база отдаст все статьи, а их тысячи)
источник

DS

Dmitry Sidorov in SqlCom.ru - Стиль жизни SQL
Я уже решил, спасибо
источник

А

Андрій in SqlCom.ru - Стиль жизни SQL
Dmitry Sidorov
Я уже решил, спасибо
Так как решил?
источник

DS

Dmitry Sidorov in SqlCom.ru - Стиль жизни SQL
Андрій
Так как решил?
SELECT (SELECT COUNT(*) FROM articles) cnt,param FROM articles WHERE (title LIKE "%":string"%" OR keywords LIKE "%":string"%") AND hide = 0 LIMIT 30
источник

DS

Dmitry Sidorov in SqlCom.ru - Стиль жизни SQL
ну только дополнить немного, что бы первое брало при определённых параметрах
источник