powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
12 сообщений из 12, страница 1 из 1
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
    #40048868
Jhonny-2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Каким образом можно удалить всю статистику, созданную самим серверов (типа WA...), а так же ту статистику, которая создавалась вручную? И оставить только ту статистику, которая привязана к индексам в таблицах у конкретной базы.
...
Рейтинг: 0 / 0
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
    #40048874
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jhonny-2005,

Be careful when you drop statistics. Doing so may affect the execution plan chosen by the query optimizer.
Statistics on indexes cannot be dropped by using DROP STATISTICS. Statistics remain as long as the index exists.

https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-statistics-transact-sql
https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-stats-transact-sql
...
Рейтинг: 0 / 0
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
    #40048876
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jhonny-2005,

этого недостаточно, также необходимо отключить автоматическое создание статистики.
...
Рейтинг: 0 / 0
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
    #40048878
Jhonny-2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad,
Собственно я и описал, что мне необходимо оставить лишь ту статистику, которая создавалась при создании индекса.
А удалить всю остальную статистику (созданную автосозданием (с наименованием WA) и созданную вручную (без привязанного индекса).
А всё остальное удалить.
...
Рейтинг: 0 / 0
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
    #40048879
Jhonny-2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,

Это конечно отлично. Я отключу на время удаления этот параметр.
Но как по всей базе всё эту статистику после этого удалить?
...
Рейтинг: 0 / 0
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
    #40048884
0wl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
0wl
Гость
Jhonny-2005,

Ну как-то так, например: выполнить, скопировать скрипт из результата запроса и затем выполнить уже его

Код: sql
1.
2.
3.
4.
5.
6.
select 'drop statistics ['+t.name + '].['+s.name+']'
from sys.tables t
	inner join sys.stats s
	on t.object_id = s.object_id
	and s.auto_created = 1
	or s.user_created = 1



Тут уже несколько раз сказали, что это стрельба по ногам, т.ч. думаю, вы знаете, что делаете
...
Рейтинг: 0 / 0
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
    #40048894
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jhonny-2005
komrad,
Собственно я и описал, что мне необходимо оставить лишь ту статистику, которая создавалась при создании индекса.
А удалить всю остальную статистику (созданную автосозданием (с наименованием WA) и созданную вручную (без привязанного индекса).
А всё остальное удалить.

зная команды (см выше) нетрудно и скрипт написать самому
вопрос-то был "каким образом", команды и таблицу со статистикой вам дали
...
Рейтинг: 0 / 0
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
    #40048903
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jhonny-2005,

автор отключу на время удаления этот параметр.

Не на время удаления, навсегда. Иначе статистики WA_ будут снова сформированы.
...
Рейтинг: 0 / 0
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
    #40048951
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0wl
Код: sql
1.
2.
3.
4.
5.
6.
select 'drop statistics ['+t.name + '].['+s.name+']'
from sys.tables t
	inner join sys.stats s
	on t.object_id = s.object_id
	and s.auto_created = 1
	or s.user_created = 1



Скобочек не хватает в where. Вместо inner, cross join получается.
...
Рейтинг: 0 / 0
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
    #40048958
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
0wl
Код: sql
1.
2.
3.
4.
5.
6.
select 'drop statistics ['+t.name + '].['+s.name+']'
from sys.tables t
	inner join sys.stats s
	on t.object_id = s.object_id
	and s.auto_created = 1
	or s.user_created = 1



Скобочек не хватает в where. Вместо inner, cross join получается.

да там вообще одной sys.stats можно обойтись + object_name()
...
Рейтинг: 0 / 0
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
    #40048995
0wl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
0wl
Гость
komrad, msLex,

да, пардон, на скорую руку писал. Но, главное, принцип понятен
...
Рейтинг: 0 / 0
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
    #40049019
Jhonny-2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо. Смысл уловил.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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