SPEICHERLIMITE SQL SERVER EXPRESS
Die kostenlosen Express Editionen der SQL Server haben Einschränkungen. Nachfolgend sehen Sie einen Überblick der einzelnen Versionen:
SQL Version | Max. Datenbankgrösse | Max. CPU | Max. Arbeitsspeicher |
---|---|---|---|
SQL Express Server 2017 | 10 GB | 1 Prozessor oder 4 Kerne | 1.38 GB |
SQL Express Server 2016 | 10 GB | 1 Prozessor oder 4 Kerne | 1.38 GB |
SQL Express Server 2014 | 10 GB | 1 Prozessor oder 4 Kerne | 1.00 GB |
SQL Express Server 2012 | 10 GB | 1 Prozessor oder 4 Kerne | 1.00 GB |
Die Einschränkungen bedeuten folgendes:
Max. Datenbankgrösse
Maximale relationale Grösse einer einzelnen Datenbank, bestehend aus Datenbank-Dateien: primäre Datendatei mit Endung .mdf, optionaler sekundärer Datendatei mit Endung .ndf und Transaktionsprotokolldatei mit Endung .ldf
Max. CPU
Maximal von einer einzelnen Instanz verwendete Serverkapazität (CPU)
Max. Arbeitsspeicher
Maximaler genutzter Arbeitesspeicher pro Instanz
GRÖSSE EINER DATENBANK ABFRAGEN
Um die Grösse einer Datenbank zu ermitteln können Sie folgendes Script ausführen:
SELECT
[Datenbank Name] = DB_NAME(database_id),
[Groesse in MB] = CAST(SUM(size) * 8 / 1024 AS DECIMAL(8,2))
FROM sys.master_files
WHERE database_id = DB_ID()
GROUP BY database_id
Sie sollten ein Resultat wie folgendes erhalten:
TABELLENGRÖSSEN EINER DATENBANK ABFRAGEN
Um zu wissen, wie viel Speicher jede Tabelle in der Datenbank verwendet, kann man folgendes Script ausführen:
SELECT
t.NAME AS [Tabellenname],
p.rows AS [Anzahl Datensaetze],
SUM(a.total_pages) * 8 AS [Total Speicher in KB],
CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS [Total Speicher in MB],
SUM(a.used_pages) * 8 AS [Gebrauchter Speicher in KB],
CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS [Gebrauchter Speicher in MB],
(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS [Freier Speicher in KB],
CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS [Freier Speicher in MB]
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
LEFT OUTER JOIN
sys.schemas s ON t.schema_id = s.schema_id
WHERE
t.NAME NOT LIKE 'dt%'
AND t.is_ms_shipped = 0
AND i.OBJECT_ID > 255
GROUP BY
t.Name, s.Name, p.Rows
ORDER BY
t.Name
Sie sollten ein Resultat wie folgendes erhalten:
Die verschiedenen Begriffe bedeuten folgendes:
Anzahl Datensätze
Anzahl verschiedener Einträge in der Tabelle
Total Speicher
Reservierter und effektiv benötigter Speicherplatz
Gebrauchter Speicher
Effektiv gebrauchter Speicherplatz
Freier Speicher
Total Speicher – gebrauchter Speicher