Archiv für: "Juli 2004"

Log Datei auslesen

Posted on Jul 13, 2004 von in SQL Server

SQL Server selber bietet hier einen undokumentierten DBCC Befehl an

DBCC log ( {dbid|dbname}, [, type={-1|0|1|2|3|4}] )

type zeigt nur minimale Informationen an, -1 zeigt die vollständigen Informationen an

Allerdings ist anzumerken, dass für Normalsterbliche der Inhalt der Log Datei schwer zu lesen und zu verstehen ist. Es empfiehlt sich, hier ein paar Euros auszugeben für Third-Party Tools wie den LogExplorer von Lumigent.

Laufende Summe in T-SQL

Posted on Jul 13, 2004 von in SQL Server
IF OBJECT_ID('lfdsum_t') IS NOT NULL
     DROP TABLE lfdsum_t
GO
CREATE TABLE lfdsum_t (col1 int)
INSERT INTO lfdsum_t values (1);
INSERT INTO lfdsum_t values (2);
INSERT INTO lfdsum_t values (3);
INSERT INTO lfdsum_t values (4);
INSERT INTO lfdsum_t values (5);

SELECT 
     a.COL1
     ,(SELECT 
          Sum(b.col1)
     FROM
          lfdsum_t b
WHERE 
          b.col1 <= a.col1) lfd_Sum
FROM 
     lfdsum_t a
DROP TABLE lfdsum_t

COL1        lfd_Sum     
----------- ----------- 
1           1
2           3
3           6
4           10
5           15

(5 row(s) affected)

Zugegebenermassen bin ich mir nicht sicher, ob der technische Begriff dafür 'laufende Summe' ist. Für Anregungen zu einem treffenderen Begriff bin ich dankbar.

Wofür ist xp_servicecontrol?

Posted on Jul 13, 2004 von in SQL Server

xp_servicecontrol ist eine undokumentierte erweiterte Prozedur, die zur Kontrolle von Diensten auf der SQL Server Maschine eingesetzt werden kann.

Ganze Geschichte »

Instanzen von SQL Server identifizieren

Posted on Jul 13, 2004 von in SQL Server

Für alle diejenigen, die noch wissen was die DOS Eingabeaufforderung ist :)

Ganze Geschichte »

DATETIME Spalten gruppieren und sortieren

Posted on Jul 13, 2004 von in SQL Server
SELECT
 DATEADD(day, 0 , DATEDIFF(day, 0, MsgDateReceived)) AS "Datum"
 , COUNT(*) AS Anzahl
FROM mails_header
GROUP BY
 DATEADD(day, 0 , DATEDIFF(day, 0, MsgDateReceived))
ORDER BY
 "Datum" DESC 

SQL Server Port ändern

Posted on Jul 13, 2004 von in SQL Server

Ja, der Port kann auf jeden anderen nicht benutzen Port geändert werden.

Ganze Geschichte »

Umwandeln von Hexadezimal nach Integer

Posted on Jul 13, 2004 von in SQL Server
SET NOCOUNT ON
DECLARE @hex VARCHAR(10)
DECLARE @stmt NVARCHAR(255)
DECLARE @int INT 
SET @hex = '0x0000008A' 
SELECT @stmt = N'SELECT @int = CONVERT( int , ' + @hex + ' )' 
EXEC sp_ExecuteSql @stmt, N' @int Int Out', @int OUT SELECT @int GO
GO

GO          
----------- 
138

Ganze Geschichte »

Unterschied zwischen DELETE und TRUNCATE

Posted on Jul 13, 2004 von in SQL Server

DELETE logged die Daten für jede einzelne Zeile, die von dem Statement betroffen sind und entfernt physikalisch den Record aus der Seite. Fährt man seine Datenbanken im "Full Recovery" Modus, kann die Aufzeichnung eines jeden einzelnen betroffenen Datensatzes das Transaktionsprotokoll enorm aufblähen. Dies ist aber notwendig, damit SQL Server im Falle einen Falles die Datenbank so aktuell wie möglich wiederherstellen kann. Der Umstand, das jeder Datensatz protokolliert wird, macht auch verständlich, daß umfangreiche DELETE Operationen langsam sind.

Ganze Geschichte »