Ich habe ein Skript, mit dem ich über Tabellen in der Datenbank berichten kann.SQL SERVER 2012 - Bericht über Spaltenoptimierung erhalten
Meine Frage ist, wie man auch Daten über die am meisten nicht optimierten Spalten bekommt?
Beispiel: Der Spaltenname, reserveddata, useddata, nicht optimierter/unusedspace.
Der Code:
use tempdatabase
create table #getdatav1 (
[table] varchar(255),
[rows] int,
reserved varchar(255),
data varchar(255),
index_size varchar(255),
unused varchar(255))
create table #getdatav2 (
[servername] varchar(50),
[basename] varchar(50),
[table] varchar(255),
[rows] int,
reservedKb int,
dataKb int,
reservedIndexSize int,
reservedUnused int)
EXEC sp_MSforeachtable @command1="insert into #getdatav1
EXEC sp_spaceused '?'"
insert into #getdatav2 ([servername], [basename], [table], [rows], reservedKb, dataKb, reservedIndexSize, reservedUnused)
select @@SERVERNAME, DB_NAME(), [table], [rows],
SUBSTRING(reserved, 0, LEN(reserved)-2),
SUBSTRING(data, 0, LEN(data)-2),
SUBSTRING(index_size, 0, LEN(index_size)-2),
SUBSTRING(unused, 0, LEN(unused)-2)
from #getdatav1
select * from #getdatav2
order by reservedKb desc