Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам? / 12 сообщений из 12, страница 1 из 1
26.02.2021, 11:32
    #40048868
Jhonny-2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
Каким образом можно удалить всю статистику, созданную самим серверов (типа WA...), а так же ту статистику, которая создавалась вручную? И оставить только ту статистику, которая привязана к индексам в таблицах у конкретной базы.
...
Рейтинг: 0 / 0
26.02.2021, 11:41
    #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
26.02.2021, 11:42
    #40048876
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
Jhonny-2005,

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

Это конечно отлично. Я отключу на время удаления этот параметр.
Но как по всей базе всё эту статистику после этого удалить?
...
Рейтинг: 0 / 0
26.02.2021, 11:56
    #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
26.02.2021, 12:13
    #40048894
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
Jhonny-2005
komrad,
Собственно я и описал, что мне необходимо оставить лишь ту статистику, которая создавалась при создании индекса.
А удалить всю остальную статистику (созданную автосозданием (с наименованием WA) и созданную вручную (без привязанного индекса).
А всё остальное удалить.

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

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

Не на время удаления, навсегда. Иначе статистики WA_ будут снова сформированы.
...
Рейтинг: 0 / 0
26.02.2021, 14:00
    #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
26.02.2021, 14:06
    #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
26.02.2021, 14:54
    #40048995
0wl
0wl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить всю статистику в базе, которая не привязана на индексы по всем таблицам?
komrad, msLex,

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


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