Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
Может кому понадобится
Самописная (Delphi) утилитка для реиндекcа\шринка БД. (тестировалась и, собственно, писалась под 2012 express - успешно работает на over 200 компов)
Консольная, 700кб

Как работает

1. При запуске определяется редакция.
2. Если SQL сервер позволяет перестроение в режиме онлайн - делает в этом режиме.
3. Сначала отбираются все индексы, со степенью фрагментации >= 10%
4. Для отобранных индексов действует правило, если степень фрагментации >=30 то Rebuid, иначе - Reorganaize
5. Для каждого индекса, если не задано обратное - выполняется Update statistics with fullscan
6. После обработки всех отобранных индексов, если не задано обратное - будет выполнены shrink files для файлов БД. (попытка освобождения свободного места делается только если его больше 10 мб)
7. Попытка Alter Database работает только на SQL 2012+

добавлены параметры - справка, выбор сервера, базы, логин\пароль, какие действия выполнять, лог (logdetail в ини файле. 1 - только инфо, 2 предупреждения, 3 максимально подробный)

инет не нужен
данные никуда не передаются
возможны доработки по заказу - мыло в заголовке


http://rghost.ru/88mPVzSKZ

ЗЫ для внутренних нужд также делает такое (пытается)
ALTER DATABASE %s
SET
RECOVERY SIMPLE,
AUTO_CLOSE OFF,
AUTO_UPDATE_STATISTICS ON,
AUTO_SHRINK ON,
AUTO_CREATE_STATISTICS ON (INCREMENTAL = ON),
AUTO_UPDATE_STATISTICS_ASYNC ON,
ANSI_NULLS ON,
ANSI_NULL_DEFAULT ON,
QUOTED_IDENTIFIER ON,
DISABLE_BROKER;

если кому не нужно - пишите, разработчик поменяет


Проверил на virustotal
SHA256: aca8b49b8c17efb4d53f50942b0b5708e6bd1699e4ab2bd9abb54d815cb4ec98
Имя файла: index_guard_1.32.7z
Показатель выявления: 0 / 56
Дата анализа: 2015-02-03 11:16:11 UTC
https://www.virustotal.com/ru/file/aca8b49b8c17efb4d53f50942b0b5708e6bd1699e4ab2bd9abb54d815cb4ec98/analysis/1422962171/
3 фев 15, 14:31    [17212024]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
проходил мимо....
Guest
Апдейт статистики после ребилда а потом шринк.
Клевая утилита. Дайте две.
3 фев 15, 14:45    [17212177]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
мдя....
1. Если SQL сервер позволяет перестроение в режиме онлайн - делает в этом режиме.
А если таблица 100 гб ?
2. После обработки всех отобранных индексов, если не задано обратное - будет выполнены shrink files для файлов БД.
Откуда такая любовь в етой команде ?

и самое главное - зачем все ето надо ? Перетсроение,реорганизация индексво - вообще довольно тонкая штука и зависит от режима работа бд,размера таблиц....++и понимание дба как живет его система,и что надо делать
3 фев 15, 14:46    [17212181]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
komrad
Member

Откуда:
Сообщений: 5252
qwertEHOK
6. После обработки всех отобранных индексов, если не задано обратное - будет выполнены shrink files для файлов БД. (попытка освобождения свободного места делается только если его больше 10 мб)

в чем великий смысл сначала упорядочивать, а потом сразу фрагментировать?

qwertEHOK

ЗЫ для внутренних нужд также делает такое (пытается)
ALTER DATABASE %s
SET RECOVERY SIMPLE...

это настоящий подарок - перевод базы в симпл в продакшене ;)

в общем, для меня, всякие такие тулзы "в себе" - вещь неоднозначная
простые скрипты куда понятнее, более настраиваемые и гибкие
3 фев 15, 14:46    [17212190]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
Maxx
мдя....
1. Если SQL сервер позволяет перестроение в режиме онлайн - делает в этом режиме.
А если таблица 100 гб ?
2. После обработки всех отобранных индексов, если не задано обратное - будет выполнены shrink files для файлов БД.
Откуда такая любовь в етой команде ?

и самое главное - зачем все ето надо ? Перетсроение,реорганизация индексво - вообще довольно тонкая штука и зависит от режима работа бд,размера таблиц....++и понимание дба как живет его система,и что надо делать


1. делалось для экспресса - там ограничение в 10 гигов
2. для уменьшения БД, у нас 1с падала при обновлении когда места меньше 100 метров
3. это все надо для беспроблемной работы over 200 точек
3 фев 15, 14:54    [17212250]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
qwertEHOK,

вам тут уже написали пол списка,остальные замечангия найдете набрав в поиске по форуму набрав шринк+перестроение индекса
3 фев 15, 14:57    [17212266]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
Maxx,

пол списка чего?
3 фев 15, 14:59    [17212287]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
Glory
Member

Откуда:
Сообщений: 104760
qwertEHOK
1. делалось для экспресса - там ограничение в 10 гигов

Express нет ONLINE. Он есть только в Enterprise

qwertEHOK
2. для уменьшения БД, у нас 1с падала при обновлении когда места меньше 100 метров

меньше 100 метров где ? Если в базе, то как сжатие гарантирует наличие свободного места ? Если на диске, то сжатие гарантирует свободное место на диске ?

qwertEHOK
3. это все надо для беспроблемной работы over 200 точек

Это лучше sqlmaint.exe от производителя ?
3 фев 15, 15:03    [17212310]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
Shakill
Member

Откуда: мск
Сообщений: 1880
komrad
qwertEHOK

ЗЫ для внутренних нужд также делает такое (пытается)
ALTER DATABASE %s
SET RECOVERY SIMPLE...

это настоящий подарок - перевод базы в симпл в продакшене ;)

да там по дефолту еще и DISABLE_BROKER
интересно, из чего исходил автор
3 фев 15, 15:05    [17212339]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
Glory
qwertEHOK
1. делалось для экспресса - там ограничение в 10 гигов

Express нет ONLINE. Он есть только в Enterprise

qwertEHOK
2. для уменьшения БД, у нас 1с падала при обновлении когда места меньше 100 метров

меньше 100 метров где ? Если в базе, то как сжатие гарантирует наличие свободного места ? Если на диске, то сжатие гарантирует свободное место на диске ?

qwertEHOK
3. это все надо для беспроблемной работы over 200 точек

Это лучше sqlmaint.exe от производителя ?


читайте внимательнее
Если SQL сервер позволяет перестроение в режиме онлайн - делает в этом режиме.

автор
меньше 100 метров где ?

если база 9,9 гига, то обновление вываливается с ошибкой

автор
Это лучше sqlmaint.exe от производителя ?

да
ЭТО покрывает наши текущие запросы, работает быстро, безпроблемно, не требует квалифицированных кадров, не пугает пользователей ошибками
3 фев 15, 15:05    [17212343]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
Glory
Member

Откуда:
Сообщений: 104760
qwertEHOK
читайте внимательнее
Если SQL сервер позволяет перестроение в режиме онлайн - делает в этом режиме.

Еще раз
перестроение в режиме онлайн повзволяет только Enterprise. Где размер базы не ограничен 10Гб

qwertEHOK
автор
меньше 100 метров где ?

если база 9,9 гига, то обновление вываливается с ошибкой

И как шринк тут поможет ?

qwertEHOK
автор
Это лучше sqlmaint.exe от производителя ?

да
ЭТО покрывает наши текущие запросы, работает быстро, безпроблемно, не требует квалифицированных кадров, не пугает пользователей ошибками

Вы сами sqlmaint.exe то хоть запускали ? Или читали о ней в хелпе ?
3 фев 15, 15:08    [17212377]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
Glory,

еще раз - на экпресе оно и не будет онлайн
шринк помогает
нет, не запускал и не читал
3 фев 15, 15:12    [17212412]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
Glory
Member

Откуда:
Сообщений: 104760
qwertEHOK
еще раз - на экпресе оно и не будет онлайн

А на Enterpise со 100Гб таблицей - будет. И это прекрасно.

qwertEHOK
шринк помогает

Фейспалм.


qwertEHOK
нет, не запускал и не читал

Именно это и позволяет вам думать, что ваша утилита "покрывает наши текущие запросы, работает быстро, безпроблемно, не требует квалифицированных кадров, не пугает пользователей ошибками"
3 фев 15, 15:15    [17212450]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
DarkForce
Member

Откуда:
Сообщений: 13
Задача этой программы - небольшая замена рутинной работе сотрудников.
1. 1С у нас падала при реструктуризации ИБ во время обновления. Шринк тут все-таки ни при чем - там идет именно нехвата свободного места в primary файле, из-за ограничения Express в 10 гб (Любви к этой команде у меня нет, она была добавлена - т.к. такая опция бывает нужна).
2. Alter database - делается для стремления к стандартизации. Все таки легче сделать это именно запросом, нежели объяснять, например рядовому сотруднику почему надо настроить параметры ИБ.
3 фев 15, 15:16    [17212462]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
Glory,

а на enterprise у нас нет задач запускать
фейспалм это когда после обновления 1с 20-30 машин встают так как БД переполнена
да, да, да ))


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

есть дельные идеи - пишите
3 фев 15, 15:19    [17212499]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
DarkForce
Member

Откуда:
Сообщений: 13
автор
Вы сами sqlmaint.exe то хоть запускали ? Или читали о ней в хелпе ?


https://msdn.microsoft.com/ru-ru/library/ms162827.aspx

Тут у меня лично есть претензия к 2м пунктам
1. Не маскируется пароль. Рядовым пользователям его знать не обязательно. Проверка подлинности OS тоже не везде используется.
2. Эта утилита в статусе - "будет удалена".
3 фев 15, 15:21    [17212522]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
Glory
Member

Откуда:
Сообщений: 104760
qwertEHOK
а на enterprise у нас нет задач запускать

Но тем не менее я поставлю по-умолчанию ONLINE. Офигительная логика.

qwertEHOK
фейспалм это когда после обновления 1с 20-30 машин встают так как БД переполнена
да, да, да ))

Я понял. Если не знаешь, что делать, то делай шринк.

qwertEHOK
есть дельные идеи - пишите

Спрячьте это и никому не показывайте.
3 фев 15, 15:23    [17212540]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
DarkForce
Member

Откуда:
Сообщений: 13
автор
Но тем не менее я поставлю по-умолчанию ONLINE. Офигительная логика.


Нигде не было написано "по умолчанию". Online используется ТОЛЬКО на тех редакциях SQL Сервера, где он ДОСТУПЕН.

Вы хоть раз пробовали делать Reindex на ЖИВОЙ БД весом более 400+ ГБ, в которой работают пользователи? Если да, то понимаете, что это действительно возможно только в онлайн режиме на Enterprise - не будет адских блокировок.
3 фев 15, 15:26    [17212580]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
msLex
Member

Откуда:
Сообщений: 8193
DarkForce
2. Alter database - делается для стремления к стандартизации. Все таки легче сделать это именно запросом, нежели объяснять, например рядовому сотруднику почему надо настроить параметры ИБ.

Я правильно понимаю, что у вас "рядовой сотрудник" настраивает свойства базы/сервера БД?
3 фев 15, 15:27    [17212589]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
Glory
Member

Откуда:
Сообщений: 104760
DarkForce
1. Не маскируется пароль. Рядовым пользователям его знать не обязательно. Проверка подлинности OS тоже не везде используется.

А как пароль должен маскироваться для утилиты командной строки набираемой вручную?

DarkForce
2. Эта утилита в статусе - "будет удалена".

И что ?
3 фев 15, 15:27    [17212602]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
Glory
qwertEHOK
а на enterprise у нас нет задач запускать

Но тем не менее я поставлю по-умолчанию ONLINE. Офигительная логика.

Молотком забивают гвозди, но можно разбить стекло. Офигительно.

qwertEHOK
фейспалм это когда после обновления 1с 20-30 машин встают так как БД переполнена
да, да, да ))

Я понял. Если не знаешь, что делать, то делай шринк.

Это вы так работаете?

qwertEHOK
есть дельные идеи - пишите

Спрячьте это и никому не показывайте.


Если у вас нет дельный предложений - не пишите, не все вопросы касаются вас.
Можно где-то в другой ветке помучать еще кого-нибудь
3 фев 15, 15:28    [17212606]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
DarkForce
Member

Откуда:
Сообщений: 13
msLex
DarkForce
2. Alter database - делается для стремления к стандартизации. Все таки легче сделать это именно запросом, нежели объяснять, например рядовому сотруднику почему надо настроить параметры ИБ.

Я правильно понимаю, что у вас "рядовой сотрудник" настраивает свойства базы/сервера БД?


Да, если приходится. У нас 230+ раскиданных по всему ЮФО ИБ 1С. Платформа - SQL Express.
3 фев 15, 15:28    [17212609]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
Glory
Member

Откуда:
Сообщений: 104760
qwertEHOK
Если у вас нет дельный предложений - не пишите, не все вопросы касаются вас.
Можно где-то в другой ветке помучать еще кого-нибудь

Дельный - это какие ?
Давайте продавать утилиту по всему миру ?
Или ой, какая замечательная утилита, пишите еще ?
3 фев 15, 15:32    [17212638]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
qwertEHOK , DarkForce
Если пишете что-то и пытаетесь репрезентовать общественности - то хотя бы агрументы подтяните.
3 фев 15, 15:32    [17212639]     Ответить | Цитировать Сообщить модератору
 Re: Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
DarkForce
Member

Откуда:
Сообщений: 13
Glory
1. Не маскируется пароль. Рядовым пользователям его знать не обязательно. Проверка подлинности OS тоже не везде используется.

А как пароль должен маскироваться для утилиты командной строки набираемой вручную?

DarkForce
2. Эта утилита в статусе - "будет удалена".

И что ?[/quot]

К сожалению, теория, в которой многие из нас очень сильны - сильно расходится с практикой. Практика показывает, что проще дать "болтокруту" закрытый софт, который даже пароль в ini файле маскирует, нежели рассказывать ему о планах обслуживания, объяснять почему и как запускать запросы в Management Studio и так далее - тем более, что "болтокруты" меняются регулярно. Для тех, кто действительно понимает что и как запускать, и зачем оно все нужно, начиная от кодера 1С и заканчивая DBA - такие утилиты мало чем полезны.

Публикация на этом форуме носила исключительно "любознательный" характер, посмотреть как же гуру могут выделить недостатки/достоинства подхода. Разочаровывает что у нас все рекомендации смахивают на попытку зацепиться к утрированным комментария. Шум просто на пустом месте.
3 фев 15, 15:36    [17212666]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить