SQL Practice Blog – SQL Server, BizTalk und .NET Erfahrungen

Posts Tagged ‘SQL Server

SQL Management Studio: Connect and Queries take so long

leave a comment »

When I connect to my local SQL Server using SQL Management Studio or SQL Operations Studio and want to execute queries, it sometimes takes several minutes to execute.

This setting in Internet Explorer’s Internet Options solved my problem:

  • Open Internet Explorer
  • Go to Tools -> Internet option
  • Open the „Advanced“ tab
  • Uncheck „Check for server certificate revocation (requires restart)“

 

1a9c2cf90ff6a62dc42dddcb742a04ac

Advertisements

Written by Robert Meyer

April 16, 2018 at 09:42

SQL Server 2012: EOMONTH Funktion

leave a comment »

Mit dem SQL Server 2012 ist eine neue Datumsfunktion dazu gekommen. Mit EOMONTH ist es möglich sich den letzten Tag des Monats ausgeben zu lassen. Dies ist besonders interessant wenn man Wertebereiche innerhalb eines Monats oder über mehrere Monate Tag genau selektieren möchte.

So wendet man EOMONTH an, um sich den letzten Tag des Monats August im Jahr 2012 ausgegeben zu lassen:

image

Man kann jedoch auch Monat dazu addieren oder abziehen. Hierfür steht ein optionaler Operator zur Verfügung.

image

Es ist nur eine kleiner Erweiterung, aber sie erleichtert doch auf angenehme Art die Arbeit mit TSQL.

Written by Robert Meyer

August 7, 2012 at 13:18

Veröffentlicht in SQL Server

Tagged with , ,

Update auf große Datenmengen mit @@ROWCOUNT

leave a comment »

Häufig steht man vor der Herausforderung in einer sehr großen Tabelle Datensätze zu aktualisieren. Hat diese z.B. wie in meinem Szenario über 10 Millionen Datensätze und einen Trigger der auf Update Commands reagiert, ist es nicht sehr sinnvoll mit einem mal mehr als 1000 Zeilen zu aktualisieren. Hierbei kann es zu ungewollten Table Locks kommen. Noch problematischer wird es, wenn während des Zeitpunktes des Updates viele Abfragen auf dieser Tabelle ausgeführt werden.

Der erste Lösungsansatz bei diesem Problem ist ein eingeschränkter Update Befehl auf 1000 Zeilen. Diese kann man mit einem UPDATE TOP (1000) und ebenso mit dem Befehl SET ROWCOUNT 1000 erreichen (Siehe Beispiele).

image

Möchte man nun etwa 100000 Zeilen aktualisieren empfiehlt es sich hierfür eine Schleife zu bauen. Außerdem sollte nach jedem Updatebefehl eine Wartezeit von 1-3 Sekunden eingefügt werden, damit andere Anfragen die Möglichkeit haben Sperren zu setzen. Dies erreicht man durch den Befehl WAITFOR DELAY. Hier ein Beispiel:

image

Der gesamte Updatevorgang kann dadurch etwas länger dauern, man minimiert jedoch die Wahrscheinlichkeit von Locks über die ganze Tabelle und erlaubt z.B. Triggern optimaler zu arbeiten.

Written by Robert Meyer

Juli 11, 2012 at 10:38

Veröffentlicht in SQL Server

Tagged with , , ,

Server mit WSS 3.0 umbenennen

leave a comment »

Ich werde heute meinen Blog um eine neue Kategorie erweitern: SharePoint. Der erste Eintrag in dieser Kategorie stellt sich einem, auf den ersten Blick, sehr einfachen Problem.

Problem:

Ich musste heute in meiner SharePoint Entwicklungsumgebung den Servernamen anpassen. Das ist prinzipiell nicht kompliziert, nur muss bei Windows SharePoint Services bzw. SharePoint Server auf einiges geachtet werden, damit er danach weiterhin fehlerfrei läuft.

Lösung:

  1. Umbenennen des Servers geschieht über die Eigenschaften des Arbeitsplatzes. Nachdem umbenennen muss der Rechner neu gestartet werden.
  2. Wenn der Servername geändert ist, wird die Änderung leider nicht im SQL Server übernommen. Wir müssen uns also mit dem SQL Server verbinden und den Servernamen per T-SQL anpassen. Sich mit dem SQL Server der WSS 3.0 zu verbinden, funktioniert leider nur über NAMED PIPES.

    Servername (WSS 3.0):        \\.\pipe\mssql$microsoft##ssee\sql\query
    Servername (SP 2010):        \\.\pipe\mssql$sharepoint\sql\query

    In beiden Fällen sollten ihr als Authentifizierungsmodus die Windows Authentifizierung wählen!

    Wie der Servername geändert werden kann, erfahrt ihr in einem etwas älteren Blog Post von mir:
    SQL Server 2008: Tatsächlichen Servernamen ändern

  3. Als nächstes öffnen wir die Eingabeaufforderung um den Servernamen in den SharePoint Services anzupassen.

    cd c:\program files\common files\microsoft shared\web server extensions\12\bin
    stsadm -o renameserver -oldservername [alter Servername] -newservername [neuer Servername]

  4. Der letzte Schritt wäre die bestehenden Webanwendungen im SharePoint Server anzupassen. Dort werden wir Adressen unter denen die Seiten gefunden werden anpassen. Wir öffnen dazu die SharePoint Zentral-administration (Wichtig: Beim öffnen nicht über den Fehler wundern. Ihr müsst den neuen Servernamen in der URL benutzen!), begeben uns unter Vorgänge in die Einstellungen der Alternativen Zugriffszuordnungen (Alternate Access Mappings) und passen dort in allen Einträgen den Servernamen entsprechend an.

    image

Written by Robert Meyer

Dezember 10, 2010 at 21:43

Veröffentlicht in SharePoint

Tagged with , , , ,

Generieren von DML und DDL Skripten aus einer bestehenden Datenbank

leave a comment »

Häufig begegnet einem in einen Entwicklungsprozess von Software der Vorgang das man Datenbank mit Test- oder Initialdaten von einem SQL Server auf verschiedene andere SQL Server verteilen möchte.

Hierfür stellt Microsoft verschiedene Wege zur Verfügung, welche aber alle in der einen oder anderen Weise an eine Technologie gekoppelt sind. Hier wären als Beispiel die SQL Server Integration Services (SSIS) aufzuzählen. Diese erzeugen ein SSIS Packet, welches wiederum durch das installierte Feature SSIS Daten auf verschiedene andere Datenbanken verteilen kann.
Eine andere Möglichkeit besteht darin, T-SQL Skripte mit dem SQL Server Management Studio zu erzeugen. Diese Skripte beinhalten jedoch nur DDL Befehle, welche zum erzeugen von Datenbanken, Tabellen, Stored Procedures etc. benötigt werden. Jedoch werden keine DML Befehle inkludiert welche für das Erzeugen und Bearbeiten von Datensätzen zuständig sind.

Der einzige Weg, den Microsoft anbietet, führt über Visual Studio. Im Visual Studio öffnet man den Server-Explorer und verbindet sich mit der Datenbank in der sich die Tabelle befindet, von der ein T-SQL Skript erzeugt werden soll. Für die gewünschte Tabelle öffnet man das Kontextmenu und wählt den Eintrag Publish to provider aus.

image

Daraufhin startet ein Assistent der durch den Vorgang führt. Als ersten Schritt muss man hier nochmals die gewünscht Datenbank auswählen. Als nächsten Schritt entscheidet man sich für ein Ziel. Hier stehen die Möglichkeiten Script to file und Publish to shared provider zur Auswahl. Die erste Auswahlmöglichkeit dürfte klar sein, die zweit erlaubt das Ausführen des Skripts auf einem gehosteten SQL Server.

image

Im nächsten Schritt des Assistenten können nun verschiedene Generierungseinstellungen für das T-SQL Skript definiert werden:

  • Drop existing objects in script
    Wird diese Eigenschaft auf True gesetzt, so wird als erstes in dem T-SQL Skript ein DROP Befehl für alle bestehenden Objekte definiert.
  • Schema qualify
    Ist diese Eigenschaft auf True gesetzt, so werden die Objekt mit dem jeweiligen Schema erzeugt. Setzt man diese Eigenschaft jedoch auf False, werden nur die Objekte ohne Schemainformation erzeugt. Man sollte diese Eigenschaft auf True lassen.
  • Script for target database
    Hier kann man die Version der Zieldatenbank definieren. Zur Auswahl stehen SQL Server 2000, 2005 und 2008.
  • Types of data to publish
    Nicht immer möchte man die Daten und das Schema zusammenerstellen. Hier hat man die Auswahl für was das T-SQL Skript generiert werden soll. Für das Schema und die Daten (DDL + DML), nur das Schema (DDL) oder nur für die Daten (DML).

image
Als letzter Schritt zeigt der Assistent noch eine Zusammenfassung aller Einstellungen an. Danach wird das T-SQL Skript generiert.

Dies ist eine einfach Möglichkeit, mit der man schnell eine Datenbank von einem SQL Server auf einen anderen SQL Server übertragen kann wenn man keine direkte Verbindung zwischen den Servern aufbauen kann.

Written by Robert Meyer

November 2, 2010 at 10:34

Veröffentlicht in SQL Server

Tagged with , , , ,

Interessante .NET Konferenzen 2010

leave a comment »

Das Jahr 2010 ist ja nun bereits in der zweiten Halbzeit, jedoch finden auch da noch vier sehr interessante .NET Konferenzen und Unkonferenzen statt auf die ich euch gern aufmerksam machen würde.

Konferenzen:

See# Party am 28.08.2010 in Konstanz (http://www.seesharpparty.de)
NRW Conf 2010 vom 09.09. – 10.09.2010 in Wuppertal (http://nrwconf.de/2010/)

Unkonferenzen:

BizTalk Open Space 2010 vom 04.09. – 05.09.2010 in München (http://biztalkopenspace.de/2010/)
.NET Open Space 2010 vom 16.10. – 17.10.2010 in Leipzig (http://netopenspace.de/2010/)

Ich werde auf allen vier Konferenzen / Unkonferenzen anzutreffen sein. Bei der See# Party und der NRW Conf jeweils auch als Sprecher.

Meine Themen werden sein:

NRW Conf: StreamInsight – Die andere Art des Datenzugriffs
See# Party: ADO.NET Entity Framework 4 in N-Tier Applications integrieren

Ich würde mich natürlich freuen euch auf der einen oder anderen Konferenz begrüßen zu können und mit euch über aktuelle Themen diskutieren zu dürfen 🙂

Written by Robert Meyer

Juli 27, 2010 at 14:30

Veröffentlicht in Sonstiges

Tagged with , , , ,

BI-Night in der .NET User Group Chemnitz

leave a comment »

In der .NET User Group Chemnitz wird es am 07.05.2010 ab 19 Uhr einen Abend rund um Business Intelligence mit dem SQL Server 2008 (R2) geben. Hier einmal die Fakten des Abends:

Wann?
07.05.2010 um 19 Uhr

Wo?
TCC Chemnitz; Annabergerstr. 240; 09125 Chemnitz

Inhalt:
Ihr habt schon oft den Begriff „Business Intelligence“ gehört, aber könnt damit
nichts anfangen? Dann seid ihr hier genau richtig! Wir zeigen euch was man unter
Business Intelligence zu verstehen hat und in wie weit der SQL Server 2008 euch
dabei unterstützen kann. Wir gehen dabei auf Integrationslösungen mit dem SQL
Server Integration Services, auf Reportentwicklung mit dem SQL Server Reporting
Services und auf die Verwaltung eines Datawarehouses mit den SQL Server
Analyses Services ein. Lasst euch von der Vielfalt des SQL Servers 2008
überraschen. Natürlich wird eine Übersicht über BI Neuerungen im SQL Server
2008 R2 auch nicht fehlen.

Referenten:
René Helbig, Softwareingenieur bei AMC Messtechnik in Chemnitz und Robert
Meyer, Development Trainer und .NET Entwickler bei der ppedv AG, werden euch
an diesen Abend in Welt von Business Intelligence einführen. Beide arbeiten seit
vielen Jahren mit dem SQL Server und dem .NET Framework.

Anmelden könnt ihr euch auf doodle. Wir würden uns freuen wenn ihr zahlreich erscheinen würdet und viel Lust auf Diskussionen mitbringt.

Written by Robert Meyer

Mai 5, 2010 at 09:38