Kategorie: "SQL Server"

TempDB verschieben

Posted on Jul 13, 2004 von in SQL Server

Generell macht es Sinn, tempdb auf eine separaten Platte oder Array zu legen, um die Performance zu verbessern. Dieser Knowledgebase Artikel beschreibt, wie man sowohl Benutzer- als auch Systemdatenbanken verschiebt.

Alternativ kann man das auch über ein kleines T-SQL Skript erledigen:

USE master
GO
ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'H:\Daten\tempdb.mdf')
GO
ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'H:\Daten\templog.ldf')
GO

Anschließend muß SQL Server neu gestartet werden, damit die Änderungen wirksam werden.

Das Alter einer Person

Posted on Jul 13, 2004 von in SQL Server

In Ergänzung zu diesem Beitrag kann man auch folgende Alternativen zur Bestimmung des Alters einer Person verwenden:

Ganze Geschichte »

Zufällig ausgewählte Datensätze zurückgeben

Posted on Jul 13, 2004 von in SQL Server

Die Anforderung, zufällig ausgewählte Datensätze zurückzugeben, findet man recht häufig. Analyse einer Stichprobe ist eine wahre Spielwiese für Statistiker. In T-SQL kann dies recht einfach umgesetzt werden.

Ganze Geschichte »

Speicherverbrauch einer User Connection

Posted on Jul 13, 2004 von in SQL Server

24 KB Speicher werden für eine User Connection allokiert. Nun, das hört sich erst einmal nicht viel an und in den allermeisten Umgebungen wird man sich wahrscheinlich auch nicht näher damit befassen. Allerdings gibt es ein Szenario, bei dem dieser Wert unter Umständen eine Rolle spielen kann.

Ganze Geschichte »

Rollback eines Triggers bei einem Fehler verhindern

Posted on Jul 13, 2004 von in SQL Server

Keine Chance!

Jeder Fehler innerhalb des Triggers beendet diesen, die zugrundeliegende Transaktion und den Batch.

Tags: ,

Dynamische Suchbedingungen in T-SQL

Posted on Jul 13, 2004 von in SQL Server

Original von Erland Sommarskog; deutsche Übersetzung von Frank Kalis

Einführung

Eine sehr weitverbreitete Anforderung an ein Informationssystem ist es, eine oder mehrere Funktionen zu haben, bei denen der Benutzer in der Lage ist, die Daten durch freie Auswahl möglichst vieler verschiedener Kriterien zu durchsuchen. Dies ist eine enorme Herausforderung, da Sie nicht nur den gewünschten Output produzieren müssen, sondern auch die Antwortzeiten innerhalb eines akzeptablen Zeitrahmens halten müssen, zumindest bei häufig verwendeten Suchen. Zu guter Letzt muss der Code leicht zu warten sein, damit neue Wünsche und Anforderungen leicht implementiert werden können.

Ganze Geschichte »

Zeitwerte addieren

Posted on Jul 13, 2004 von in SQL Server
SET NOCOUNT ON
CREATE TABLE #temp_table 
( 
     hm VARCHAR(5)
)
INSERT #temp_table VALUES('8:30')
INSERT #temp_table VALUES('5:01')
INSERT #temp_table VALUES('12:59')
INSERT #temp_table VALUES('7:20')
SET NOCOUNT OFF
SELECT
     CONVERT(VARCHAR, SUM(DATEDIFF(ss, '1900-01-01 00:00', CONVERT(DATETIME, hm)))/3600) +
     ':' +
     CONVERT(VARCHAR, (SUM(DATEDIFF(ss, '1900-01-01 00:00', CONVERT(DATETIME, hm)))%3600)/60)
     
FROM
     #temp_table
DROP TABLE #temp_table

                                                              
------------------------------------------------------------- 
33:50

(1 row(s) affected)

Sequentielle Nummerierung durch UPDATE

Posted on Jul 13, 2004 von in SQL Server

Vor einiger Zeit habe ich auf SQLTeam.com etwas sehr Nützliches entdeckt. Die Generierung einer sequentiellen Nummerierung mit Hilfe eines einzelnen UPDATE Statements.

SET NOCOUNT ON
CREATE TABLE SEQ_T
(
col1 INT DEFAULT 0
)
DECLARE @SEQUENCE INT
SET @SEQUENCE = 0
WHILE @SEQUENCE <=10
BEGIN
INSERT INTO SEQ_T DEFAULT VALUES
SET @SEQUENCE = @SEQUENCE+1
END
SET NOCOUNT OFF
SELECT * FROM SEQ_T
SET @SEQUENCE = 0
UPDATE SEQ_T SET @SEQUENCE = col1 = @SEQUENCE + 1
SELECT * FROM SEQ_T
DROP TABLE SEQ_T

col1
-----------
0
0
0
0
0
0
0
0
0
0
0

(11 row(s) affected)


(11 row(s) affected)

col1
-----------
1
2
3
4
5
6
7
8
9
10
11

(11 row(s) affected)

...einziger Nachteil ist, dass man nicht explizit in der Lage ist, die Sortierung vorzugeben.