Category: SQL

SQL Speicherplatzbedarf von Tabellen anzeigen

CREATE PROCEDURE SP_GetTableSpace AS SET NOCOUNT ON CREATE TABLE #TableSpace ( Rows int, DataSpaceUsed int, IndexSpaceUsed int ) DECLARE @TableSpace table ( TableName varchar(255), Rows int, DataSpaceUsed int, IndexSpaceUsed int ) DECLARE @Rows int, @DataSpaceUsed int, @IndexSpaceUsed int, @TableName varchar(255) DECLARE Table_Cursor CURSOR FOR SELECT user_name(o.uid) + ‚.‘ + o.name AS table_name FROM dbo.sysobjects o, […]

Read more

SQL Tabelle (CAS Changelogbook) schnell verkleinern

Das löschen mehrerer Zeilen aus großen SQL Tabellen kann schnell zum Geduldsspiel werden. Wenn z.B. aus dem CAS Changelogbook alle alten Einträge entfernt werden sollen, würde folgende Anweisung schnell ein paar Stunden laufen ( und im Zweifelsfall in einen Timeout laufen: DELETE FROM dbo.Changelogbook Where updatetimestamp < getdate()-365 Die DELETE-Anweisung läuft extrem lange und auch das DB-Protokoll […]

Read more

Alle Spalten einer SQL Datenbank nach einem Textinhalt durchsuchen

ALTER PROCEDURE SP_FindStringInDataBase AS SET NOCOUNT ON CREATE TABLE #TableSpace ( Inhalt int ) DECLARE @TableSpace Table ( T varchar(255), C varchar(255), Inhalt int ) DECLARE @Rows int, @TableName varchar(255), @COLUMNNAME varchar(255), @Inhalt int; DECLARE Table_Cursor CURSOR FOR SELECT Top 100 Percent TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE (data_type=’varchar‘ or data_type=’nvarchar‘) And Column_Name!=’Notes2′ And Column_Name!=’Name‘ And […]

Read more

SQL Server Backup, Integrity Check, and Index and Statistics Maintenance

Sehr gute Skripte sind bei  Ola Hallengren zu finden: https://ola.hallengren.com/ Extern lässt sich dies z.B. auf einem SQL Express ohne Agent per Batch aufrufen sqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d master -Q „EXECUTE [dbo].[IndexOptimize] @Databases = ‚NAME‘,@FragmentationLow = NULL, @FragmentationMedium = ‚INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE‘, @FragmentationHigh = ‚INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE‘, @FragmentationLevel1 = 5, @FragmentationLevel2 = 30, @UpdateStatistics = ‚ALL‘, @OnlyModifiedStatistics = […]

Read more

SQL Index Neuaufbau über Transact SQL

–Rebuild all indexes online with keeping the default fill factor for each index USE [DATABASE_NAME] EXEC sp_MSforeachtable @command1=“print ‚?'“, @command2=“ALTER INDEX ALL ON ? REBUILD WITH (ONLINE=ON)“ –Rebuild all indexes offline with keeping the default fill factor for each index USE [DATABASE_NAME] EXEC sp_MSforeachtable @command1=“print ‚?'“, @command2=“ALTER INDEX ALL ON ? REBUILD WITH (ONLINE=OFF)“ –Rebuild […]

Read more