Mehr

UTF-8-codierte Shapefiles in SQL Server importieren?

UTF-8-codierte Shapefiles in SQL Server importieren?


Ich versuche, ein Shapefile mit den Tools ogr2ogr und Shape2SQL in SQL Server zu laden. Das Shapefile verwendet die UTF-8-Kodierung, die in einer .cpg-Datei angegeben und beim Öffnen der Datei mit QGIS bestätigt wird.

Wie dieser Beitrag jedoch erklärt: Welche Zeichencodierung wird von der DBF-Datei in Shapefiles verwendet? Die .cpg-Datei gilt nur für Daten, nicht für Spaltennamen. Aus diesem Grund schlagen beide Tools (ogr2ogr und shape2sql) beim Lesen der Datei fehl.

Ich habe versucht, die .dbf-Datei mit Notepad ++ in verschiedene Formate (von einfachem ASCII, zu utf8 ohne bom, zu utf8) zu konvertieren, aber ohne Ergebnisse.

Gibt es eine halbautomatische Möglichkeit, die Spaltennamen in ihr lateinisches Äquivalent zu konvertieren oder eines dieser Programme zu zwingen, Spaltennamen in utf8 zu lesen?


  1. Stellen Sie sicher, dass Ihre Tabelle UTF-8-Codierung verwendet
  2. Dieser Befehl funktioniert bei mir in Windows:

    ogr2ogr -f "MySQL" MYSQL:"db_name,host=localhost,user=root,password=root,port=3306" -nln "table" -a_srs "EPSG:4326" c:a.shp -lco ENGINE=MyISAM


UTF-8-codierte Shapefiles in SQL Server importieren? - Geografisches Informationssystem

Ich glaube, du bist ein wenig verwirrt.

KML ist ein Dateiformat zum Speichern von räumlichen Informationen. Es wird am häufigsten mit Google Earth in Verbindung gebracht, aber es gibt viele andere Programme, die KML-Dateien lesen/schreiben können.
Im Folgenden sehen Sie ein Beispiel für eine einfache KML-Datei:
Da KML-Informationen textbasiert (oder genauer gesagt XML-basiert) sind, können Sie sie in jeder beliebigen Datenbank speichern, die Textinformationen speichern kann (was so ziemlich jede Datenbank ist). Wenn Ihre KML-Dateien komplexe geografische Merkmale wie den Umriss von Ländern beschreiben, ist es möglicherweise keine gute Idee, sie direkt in der Datenbank zu speichern, sondern sie als Dateien im Dateisystem zu speichern und sie speichern einfach einen Verweis auf diese Datei im Datenbank (so funktioniert im Wesentlichen der SQL Server-Dateistream-Datentyp)

Alle Daten, die in einer Datenbank gespeichert sind, können an einen Webserver gesendet werden (über ADO.Net oder eine ähnliche DB-Verbindung) - es spielt keine Rolle, um welchen Datentyp es sich handelt. aber Sie "senden" keinen Cache an den Webserver. Ein Benutzer stellt eine Anfrage an den Webserver, der sich mit der Datenbank verbindet und die erforderlichen Informationen abruft. Dieses Ergebnis wird dann jedoch auf dem Webserver zwischengespeichert, sodass es wiederverwendet werden kann, wenn ein anderer Benutzer nach denselben Informationen fragt, ohne erneut zur DB zurückkehren zu müssen.

Der Grund, warum ich den Geography-Datentyp erwähnt habe, ist, dass dies das SQL Server Spatial-Forum ist, das in erster Linie ein Ort ist, um Fragen zu den räumlichen Features in SQL Server (Geometrie- und Geografie-Datentypen) zu stellen. Das Speichern und Abrufen von KML-Dokumenten in SQL Server ist nicht wirklich eine räumliche Anwendung als solche. Spatial mit SQL Server beginnen http://www.apress.com/book/view/1430218290

Alle Antworten

1.) Möchten Sie SQL Server einfach als Methode zum Speichern/Abrufen von KML-Daten verwenden oder möchten Sie diese tatsächlich mit den räumlichen Methoden des Geometrie-/Geografietyps abfragen/manipulieren?

KML ist einfach ein XML-Dialekt, sodass Sie KML-Daten mithilfe des XML-Datentyps direkt in einer beliebigen Spalte einer SQL Server-Datenbank speichern können.
Ich bin mir nicht sicher, was Sie mit "komprimiertes KML-Format" meinen, aber wenn dies binär ist, können Sie entweder den Datentyp varbinary(max) oder den Datentyp filestream verwenden, um Ihre komprimierte KML zu speichern.

Es ist also sehr einfach, KML in SQL Server zu speichern. Wenn Sie diese Daten jedoch tatsächlich abfragen möchten (z. B. "alle Features aus diesem KML-Dokument anzeigen, die innerhalb von 50 Meilen von xxx liegen"), müssen Sie sie von KML in den nativen geografischen Datentyp konvertieren. Dafür würde ich Ihnen empfehlen, Software wie Safe FME zu verwenden, um es zu importieren.

2.) "Ändern Sie die digitalisierten Daten in eine für den Benutzer verständliche Sprache" - Entschuldigung, aber ich verstehe die Frage nicht. KML ist textbasiertes XML, daher ist es bereits "benutzerverständlich", wenn Sie die Elemente des KML-Formats kennen. In welcher Sprache sollen die Daten angezeigt werden? Spatial mit SQL Server beginnen http://www.apress.com/book/view/1430218290

Ich glaube, du bist ein wenig verwirrt.

KML ist ein Dateiformat zum Speichern von räumlichen Informationen. Es wird am häufigsten mit Google Earth in Verbindung gebracht, aber es gibt viele andere Programme, die KML-Dateien lesen/schreiben können.
Das Folgende ist ein Beispiel für eine einfache KML-Datei:
Da KML-Informationen textbasiert (oder genauer gesagt XML-basiert) sind, können Sie sie in jeder beliebigen Datenbank speichern, die Textinformationen speichern kann (was so ziemlich jede Datenbank ist). Wenn Ihre KML-Dateien komplexe geografische Merkmale wie den Umriss von Ländern beschreiben, ist es möglicherweise keine gute Idee, sie direkt in der Datenbank zu speichern, sondern sie als Dateien im Dateisystem zu speichern und sie speichern einfach einen Verweis auf diese Datei im Datenbank (so funktioniert im Wesentlichen der SQL Server-Dateistream-Datentyp)

Alle Daten, die in einer Datenbank gespeichert sind, können an einen Webserver gesendet werden (über ADO.Net oder eine ähnliche DB-Verbindung) - es spielt keine Rolle, um welchen Datentyp es sich handelt. aber Sie "senden" keinen Cache an den Webserver. Ein Benutzer stellt eine Anfrage an den Webserver, der sich mit der Datenbank verbindet und die erforderlichen Informationen abruft. Dieses Ergebnis wird dann jedoch auf dem Webserver zwischengespeichert, sodass es wiederverwendet werden kann, wenn ein anderer Benutzer nach denselben Informationen fragt, ohne erneut zur DB zurückkehren zu müssen.

Der Grund, warum ich den Geography-Datentyp erwähnt habe, ist, dass dies das SQL Server Spatial-Forum ist, das in erster Linie ein Ort ist, um Fragen zu den räumlichen Features in SQL Server (Geometrie- und Geografie-Datentypen) zu stellen. Das Speichern und Abrufen von KML-Dokumenten in SQL Server ist nicht wirklich eine räumliche Anwendung als solche. Spatial mit SQL Server beginnen http://www.apress.com/book/view/1430218290

Um die KML als XML-Daten in eine Tabelle einzufügen, benötigen Sie nur eine SQL-Insert-Anweisung:

Wie kommt es von Google Earth? In eine Webanwendung, die Sie geschrieben haben? Wenn die Webanwendung beispielsweise ASP.NET verwendet, benötigen Sie nur wenige ADO.NET-Aufrufe.

Sie können sogar die relevanten Teile des KML-Dokuments (wie die geografischen Daten und die Namen der Ortsmarken) in SQL-Spalten zerkleinern, um eine bessere Suche zu ermöglichen. Sie würden das Dokument als XML-Spalte speichern, wenn Sie das gesamte Dokument erneut bereitstellen möchten.

Die zum Einfügen in SQL Server zu verwendende Datenbank-API hängt jedoch vollständig davon ab, wie Ihre Anwendung geschrieben ist, die das KML-Dokument verwendet.

Hoffe das hilft,
Bob Beauchemin
SQL-Kenntnisse

KML ist kein eigener erkannter Datentyp in SQL Server. KML ist ein XML-basiertes Dokumentformat, das sowohl räumliche als auch textuelle Daten enthält. Sie haben hier also zwei Möglichkeiten:

1. Sie können das gesamte KML-Dokument als XML mit dem XML-Datentyp von SQL Server speichern. Sie können auch das gesamte komprimierte KMZ-Dokument als Blob in SQL Server speichern
2. Sie können das KML-Dokument in seine Bestandteile (Name-Wert-Paare) zerlegen und jedes Teil als Spalte in einer relationalen Tabelle oder mehreren relationalen Tabellen speichern. Auf diese Weise könnten Sie den räumlichen Teil des KML-Dokuments in einen räumlichen SQL Server-Datentyp extrahieren, wenn dies für Sie hilfreich wäre. SSIS extrahiert XML in Zeichenfolgen, nicht in räumliche Daten. Sie könnten die räumlichen Daten in KML mithilfe der XML-Knotenmethode programmgesteuert extrahieren, dies ist jedoch nicht trivial (und SSIS unterstützt das direkte Extrahieren räumlicher Daten aus KML-Dokumenten nicht). Wenn Sie ein Beispieldokument bereitstellen, ist es einfacher, ein Beispiel zu schreiben.

Ich bin mit JCAP völlig unbekannt (eine Websuche sagt, es steht für "Capcha-Validierung in Javascript", was kein gültiger Weg wäre, um Daten zu empfangen, also muss es eine andere Bedeutung geben), aber wenn Sie eine KML- oder KMZ-Datei haben das Dateisystem, können Sie sie wie folgt speichern (Auswahl Nr. 1):

CREATE TABLE kmltable (
id INT IDENTITY PRIMARY KEY, -- diese Spalte wird nicht unbedingt benötigt
thekml XML
-- andere Spalten nach Bedarf
)
gehen

-- dies ist eine INSERT-SELECT-Anweisung
INKML-Tabelle EINFÜGEN
SELECT * FROM OPENROWSET(BULK 'C:ge-kml_Example-1.kml', SINGLE_BLOB) als x

-- XML-Dokument
WÄHLEN * AUS KML-Tabelle

TABELLE ERSTELLEN kmztable (
id INT IDENTITY PRIMARY KEY, -- diese Spalte wird nicht unbedingt benötigt
thekmz VARBINARY(MAX)
-- andere Spalten nach Bedarf
)
gehen

-- dies ist eine INSERT-SELECT-Anweisung
EINFÜGEN IN kmztable
SELECT * FROM OPENROWSET(BULK 'C:ge-kml_Example-1.kmz', SINGLE_BLOB) als x


UTF-8-codierte Shapefiles in SQL Server importieren? - Geografisches Informationssystem

Sind Geometrie und Geographie ein und dasselbe?

Wann würde der Geometriedatentyp den Kunden zur Verfügung stehen?

Antworten

Geometrie und Geographie sind nicht dasselbe. Sie sind anders.

Geometrie wird verwendet, um zweidimensionale Größen darzustellen, und Geographie wird verwendet, um geodätische Einheiten darzustellen.

Beide sind im nächsten CTP verfügbar.

Alle Antworten

Geometrie und Geographie sind nicht dasselbe. Sie sind anders.

Geometrie wird verwendet, um zweidimensionale Größen darzustellen, und Geographie wird verwendet, um geodätische Einheiten darzustellen.

Beide sind im nächsten CTP verfügbar.

Um etwas expliziter zu sein:

- Geographie soll runde Erdkoordinaten mit Winkelmaßen wie Breiten- und Längengrad verarbeiten. Das mag zwar schick klingen, aber es ist wirklich das, was die meisten Leute erwarten, wenn sie mit Geodaten arbeiten. Wenn Sie mit Lat/Long-Daten arbeiten, ist dies der richtige Typ für Sie.

- Geometrie funktioniert auf einer flachen, euklidischen Ebene. Für die meisten Leute wäre dies sinnvoll, wenn Sie nicht mit Geodaten arbeiten, sondern mit lokalen, flachen Koordinatenräumen, wie z. B. in Gebäudelayouts usw. Um diesen Typ mit Geodaten zu verwenden, müssen Sie wirklich arbeiten in einem projizierten Koordinatenraum --- etwas, mit dem GIS-Experten sehr vertraut sind, aber einem Nicht-Geographen ziemlich fremd wäre.

Ich stimme Ihnen bezüglich des technischen Unterschieds zwischen GEOGRAPHY und GEOMETRIE zu 100% zu, aber ich würde respektvoll widersprechen, dass GEOGRAPHY immer für die meisten Leute geeignet ist, die lat/long und GEOMETRIE nur etwas für GIS-Experten sind. Vielleicht habe ich die beabsichtigte Anleitung falsch verstanden, aber für den Fall, dass es nützlich sein könnte, auf einige Missverständnisse über Lat/Long hinzuweisen, die Anfängern oft Probleme bereiten.

Ein räumliches DBMS ist ohne die von Ihnen eingegebenen Daten nutzlos, und praktisch alle Daten, die Personen in einem räumlichen DBMS verwenden, sind bereits vorhandene GIS-Daten oder Daten, die mit GIS-Prozessen erstellt wurden. Tatsächlich sind es alle GEOMETRIE-Daten, sogar solche Daten, die von Anfängern oft fälschlicherweise als "unprojizierte" Breiten-/Längen-Daten angesehen werden.

Einer der häufigsten Fehler ist zu denken, dass Lat/Long-Werte irgendwie absolut sind, also denkt der Anfänger "Oh, es ist in Lat/Long, also muss ich nicht über diese Projektionen nachdenken" - der Anfänger nimmt dann zwei verschiedene Karten ein lat/long und überlagert sie und sie reihen sich nicht aneinander und er oder sie fragt sich warum. Wie kann das sein?

Was passiert ist, dass nichts auf der Erde innerhalb eines einzigen, abstrakten Breiten-/Längen-Koordinatensystems gemessen wird – stattdessen werden reale Lat-/Längen-Werte innerhalb einer bestimmten *Projektion* gemessen, die radiale Breiten-/Länge verwendet misst und basiert auf einem bestimmten Satz zugrunde liegender Koordinatensystemparameter, insbesondere dem bestimmten Datum (Ellipsoid, Versatz usw.). Auch im Fall von lat/long, gemessen mit einer kugelförmigen Erde, gibt es zugrunde liegende Parameter. Wählen Sie einen anderen Satz zugrunde liegender Parameter, wenn Sie die Breite/Länge eines bestimmten Punktes messen, und die aus diesen Punkten erstellte Karte wird nicht an einer Karte ausgerichtet, die in Breite/Länge mit anderen zugrunde liegenden Parametern erstellt wurde. Die Unterschiede können sehr groß sein, in der Größenordnung von Hunderten von Metern. Dies führt zu allerlei Fehlern, wie zum Beispiel die Anzeige von Punkten auf einer Website für beispielsweise die Standorte von Geldautomaten, die mitten in einem Teich erscheinen.

Sie erhalten jedoch Ihre Breiten- und Längengradkoordinaten, die Sie verwenden, sei es durch den Import einer Karte aus einem GIS-Datensatz (Shapefiles oder was auch immer), das Verfolgen eines Luftbilds oder die Verwendung eines Geocoders, um geschätzte Breiten- / Längenkoordinaten für . bereitzustellen B. einer Straßenadresse oder mit einem GPS-Gerät, über das Sie zu einem bestimmten Asset gehen, um den GPS-geschätzten Standort dieses Assets zu messen, basieren die Breiten- und Längengrade, die Sie erhalten, auf einem zugrunde liegenden Satz von Koordinatensystemparametern. Ob es Ihnen gefällt oder nicht, Sie müssen alles als projizierte Daten verarbeiten oder Ihre Daten werden nicht übereinstimmen und Ihre Arbeit wird voller Fehler sein. Wenn Sie die zugrunde liegenden Parameter hinter den verwendeten Lat/Long-Daten nicht kennen, haben Sie bereits den ersten Fehler gemacht, dem noch viele weitere folgen werden.

Es ist keine große Sache, dies zu verwalten und es sogar einfach zu machen. Jedes moderne GIS erledigt das unsichtbar und automatisch für Sie. Ich stimme auch zu, dass die Verwendung der Breiten- / Längengrad-Projektion (und es * ist * eine Projektion) für die meisten Anfänger einfacher ist, solange sie erkennen, dass es sich um eine Art Projektion handelt. Wenn sie erkennen, dass sie mit projizierten Daten arbeiten, können sie den notwendigen zusätzlichen Schritt der Standardisierung auf ein bestimmtes Datum wie WGS84 unternehmen und darauf achten, Breiten-/Längengrad-Daten, die andere Datumsangaben oder Parameter verwenden, in ihren Zielstandard neu zu projizieren. Aber mit Lat/Long-Daten so umzugehen, als ob Datumsangaben keine Rolle spielen und die Daten nicht projiziert werden, ist normalerweise ein Fehler, ein grober Fehler selbst bei Anwendungen, bei denen es auf räumliche Genauigkeit ankommt.

Kann GEOGRAPHY von benutzerdefinierten Anwendungen verwendet werden? Klar, absolut! Dies ist ein großartiger Datentyp und Microsoft sollte für die Implementierung gelobt werden. Ich schlage nur vor, dass Anfänger nicht der Vorstellung erliegen, dass, wenn sie GEOGRAPHY verwenden, alle Lat/Long-Werte, die sie von überall erhalten, in Ordnung sind und alles gut wird. Wenn Sie wissen, was Sie tun, können Sie diesen Typ für eine Anwendung auswählen. Achten Sie dabei darauf, das jeweilige verwendete Breiten-/Längen-Koordinatensystem zu verfolgen und sicherzustellen, dass die eingegebenen Daten von anderen unterschiedlichen Breiten-/Längen-Projektionen transformiert werden (zum Beispiel unter Verwendung verschiedener Datumsangaben) in jede spezielle Breiten-/Längenform, die verwendet wird. Es gibt viele Tools, die Ihnen dabei helfen.

Aber es gibt auch viele Tools, und wahrscheinlich mehr davon und auch reichhaltigere Tools, die GEOMETRY mühelos und transparent und einfach zu bedienen machen. Was die verwendeten Daten angeht, die neu erstellten Daten und die Toolsets, die jeder verwendet, ist dies im Grunde eine GEOMETRIE-Welt, also gibt es dort viele Möglichkeiten. Erfahren Sie, wie Sie die richtigen Tools verwenden und darauf vertrauen, und alles wird gut und sogar einfach in Ihrer SQL Server-Anwendung.


1 Antwort 1

Das Problem scheint zu sein, dass die Zeilen, die nicht korrekt importiert werden, Zeichen enthalten, die in Codepage 950 codiert sind und ein abschließendes Byte von 0x7C aufweisen, was gültig ist. aber zufällig auch das Pipe-Symbol, das Sie als Trennzeichen verwenden. Beispielsweise:

Jedes dieser beiden Zeichen hat ein Trail-Byte von 0x7C . Der Parser scheint dies als Trennzeichen anstelle eines Teils einer 2-Byte-Sequenz für ein Zeichen der Codepage 950 zu sehen. Deshalb erhalten Sie ein "?" sowohl in "Stadt" als auch in "Land" mit der restlichen Eingabezeile in der Spalte "Geschlecht". Das "?" in diesen beiden Spalten liegt daran, dass die Lead-Bytes 0xA5 und 0xB7 alleine nicht gültig sind.

Die nächste Zeile hat das gleiche Problem:

Dieses Mal habe ich das Trennzeichen beibehalten, das am Ende des "City" -Werts steht (damit es klarer ist, dass das Trennzeichen der gleiche Bytewert ist wie das Trail-Byte dieses 4. Zeichens). Das 4. Zeichen, , ist in Codepage 950 als 0xA77C codiert. Aus diesem Grund wird nur das 4. Zeichen als "?" angezeigt.

Also das Macht ein Fehler in SSIS sein. Oder vielleicht ist es ein Konfigurationsproblem. Gibt es eine Möglichkeit anzugeben, dass die gesamte Datei, nicht nur diese eine Spalte, Codepage 950 ist? Der spaltenweise Umgang mit Codepages im Sinne einer Textdatei macht keinen Sinn. Die gesamte Datei ist als Codepage 950 codiert, nicht nur diese eine Spalte. Wenn es möglich ist, das Trennzeichen zu ändern, kann dies helfen, aber es verzögert höchstwahrscheinlich nur das Problem, da jedes Trennzeichen als gültiger Trail-Byte-Wert für Doppelbyte-Zeichen codiert werden kann. Da OPENROWSET korrekt funktioniert, muss ich das auch glauben kann (obwohl Sie nicht die Codierung der Datei für OPENROWSET festlegen, sondern nur die Spalte, so dass dies immer noch ein SSIS-Fehler sein könnte).

Bitte versuchen Sie Folgendes, um die Codierung der Datei in SSIS festzulegen:

  1. Gehen Sie zum Flatfile-Verbindungsmanager-Editor (Seite „Allgemein“)
  2. Geben Sie unter "Codepage" 950 ein.
  3. Stellen Sie sicher, dass "Unicode" ist nicht ausgewählt.

Überprüfen Sie auch die Spalte "STADT" unter "Ausgabespalten" und stellen Sie sicher, dass "Standard Parse" und nicht "Fast Parse" verwendet wird (da "Fast Parse" gebietsschemaunabhängig ist).


2 Antworten 2

Wenn Zeichen falsch importiert werden, liegt ein Problem mit einem (oder beiden) der folgenden Bereiche vor, da dies eigentlich ein zweistufiger Prozess ist:

BCP / BULK INSERT weiß nicht, wie die Datei codiert ist und interpretiert sie falsch

Die Zielspalte ist VARCHAR (oder CHAR ) und die Zusammenstellung dieses Ziels Säule (nicht Datenbank) verwendet eine Codepage, die keine Zuordnung für die falsch importierten Zeichen hat.

Es ist hier wichtig zu beachten, dass die Standardsortierung für die Datenbank, in der sich die Importtabelle befindet, nicht relevant ist. Die einzige Sortierung, die hier von Bedeutung ist, ist die Sortierung jeder einzelnen Zeichenfolgenspalte, in die importiert wird. Und die Sortierung jeder einzelnen Zeichenfolgenspalte kann unterschiedlich sein, und keine von ihnen muss mit der Standardsortierung der Datenbank übereinstimmen. Es ist nur typisch, dass die Sortierung der meisten Spalten in einer Datenbank dem Standard der Datenbank entspricht, da dies die Sortierung ist, die beim Erstellen neuer Tabellen und Spalten verwendet wird und keine Sortierung über das Schlüsselwort COLLATE angegeben wird.

Schritt 1: Dateicodierung
BCP / BULK INSERT (oder die meisten anderen Codes, die eine Datei lesen) wissen nicht, welche Codierung eine Datei verwendet, es sei denn, die Datei verwendet eine der wenigen Codierungen, die eine Byte Order Mark (BOM) haben. Aber Extended ASCII-Codierungen verwenden keine Byte-Reihenfolge-Marken und können daher nicht programmgesteuert bestimmt werden (zumindest nicht mit Sicherheit). Wenn Sie Extended ASCII-Codierungen verwenden, müssen Sie entweder die Codepage angeben oder es wird ein Standardwert angenommen.

Wie auf der MSDN-Seite für das bcp-Dienstprogramm unter dem -C Möglichkeit:

OEM -> Vom Client verwendete Standardcodepage. Dies ist die Standard-Codepage, die verwendet wird, wenn -C ist nicht angegeben.

Sie können die Standard-Codepage bestimmen, indem Sie eine Eingabeaufforderung öffnen und entweder mode oder chcp ausführen (ich bevorzuge chcp, da es auch das Ändern der Codepage ermöglicht, wenn Sie einen Wert übergeben).

Wenn Ihre Standardcodepage 850 ist und die Datei dennoch mit einer Codierung von Windows-1252 Latin1 (ANSI) gespeichert wurde, kann es leicht zu Problemen bei der Interpretation der Datei kommen, da die Zeichenzuordnungen zwischen diesen beiden Codepages nicht gleich sind. Dies hat in keiner Weise mit SQL Server zu tun.

Das Zeichen ñ hat auf Codepage 1252 einen Wert von 241. ABER auf Codepage 850 hat dasselbe Zeichen einen Wert von 164. Die Datei ist unabhängig von allem anderen eine Reihe von Bytes, und eines dieser Bytes hat eine Dezimalzahl Wert von 241 (weil es beim Speichern angewiesen wurde, Codepage 1252 zu verwenden, die festlegte, dass ñ als 241 gespeichert werden musste). Wenn BCP nun die Datei liest und die Standard-MS-DOS-Codepage von 850 verwendet, wird derselbe Bytewert von 241 dem Zeichen ± zugeordnet. Wenn Sie über den Schalter -C eine Codepage von entweder ACP oder 1252 (dasselbe) angeben, weiß BCP, dass ein Byte mit dem Wert 241 tatsächlich ñ ist. Oder Sie könnten eine Codepage von 1255 (Windows Hebräisch) angeben, dann interpretiert BCP / BULK INSERT denselben Bytewert von 241 als Zeichen ס .

Schritt 2: Datentyp und Sortierung der Zielspalte

Sobald BCP / BULK INSERT (oder eine beliebige Client-App) die Daten einliest, existieren sie als diese Zuordnungen, nicht nur als Basis-Byte-Werte. Alle Zeichen, die in BCP / BULK INSERT eingelesen wurden, werden in der Zielspalte gespeichert als dieser Charakter, solange dieses Zeichen im Zieldatentyp und in der Sortierung abgebildet werden kann. Ein Zieldatentyp von NVARCHAR , NCHAR und NTEXT (aber verwenden Sie nicht NTEXT ) kann alle Zeichen enthalten, sodass die Sortierung keine Rolle spielt. Wenn der Zieldatentyp jedoch VARCHAR , CHAR oder TEXT ist, bestimmt die Sortierung die Codepage, die wiederum die Zeichenzuordnungen bestimmt. Wenn der Zieldatentyp einer der letzten 3 genannten ist und Collation verwendet, die mit derselben Codepage verknüpft ist, die für die Datei verwendet wird, dann sollte alles gut funktionieren. Oder, wenn die Kollation mit einer anderen Codepage verknüpft ist, wird versucht, die Charakter, nicht der Byte-Wert.

Das heißt, wenn BCP / BULK INSERT mit einer Codepage von 1252 und einem Zeichen von ñ (Wert 241 auf Codepage 1252) arbeitet, dann importieren Sie das in eine VARCHAR-Spalte mit einer Sortierung von SQL_Latin1_General_CP850_CI_AS -- die Codepage 850 verwendet -- dann sehen Sie ein Zeichen von ñ (gleiches Zeichen, aber Wert 164 auf Codepage 850) anstelle von ± , das denselben Wert 241 auf Codepage 850 hat. Aber wenn Sie in eine VARCHAR-Spalte mit einer Sortierung von . importieren Hebrew_CI_AS – welches Codepage 1255 verwendet – dann werden Sie sehen? statt ס (Wert 241 auf Codepage 1255), da für ñ auf Codepage 1255 kein Mapping vorhanden ist.


Todds Welt

Sie können GeoNames-Daten nach Ländern (und einigen anderen Organisationskategorien) geordnet finden, indem Sie die GeoNames-Downloadseite durchsuchen. Wenn Sie die GeoNames-Daten für die USA herunterladen möchten, wählen Sie US.zip.  Für diese Übung laden wir die Datei allCountries.zip herunter, die die vollständige weltweite GeoNames-Datenbank enthält.  Entpacken der heruntergeladene Datei erzeugt die Datei allCountries.txt.

Notiz: Diese Version der GeoNames-Daten wurde am 13. Januar 2009 heruntergeladen und enthielt 6.906.334 Datensätze.

Vorbereiten von GeoNames-Daten

Die GeoNames-Daten sind als tabulatorgetrennte, UTF-8-codierte Textdatei verfügbar. Jeder Datensatz wird mit einem Zeilenumbruchzeichen (' ') abgeschlossen.  SQL Server 2008 unterstützt kein UTF-8 und erwartet solche Daten in der UTF-16-Codierung, wobei jeder Datensatz mit einem Zeilenumbruch, einer Zeilenumbruchkombination (' ').  Außerdem wird ein Byte Order Marker (BOM) am Anfang der Datei benötigt.  Johannes führte NAnt als eine Möglichkeit ein, UTF-8-Daten in UTF-16 zu konvertieren.  I wählte einen anderen Weg.  Mit dem Windows-Texteditor EditPad Pro habe ich die Datei allCountries.txt in ein mit SQL Server 2008 kompatibles Formular konvertiert. Hier ist der Arbeitsablauf, den ich mit EditPad Pro verwendet habe:

Notiz: Diese Konvertierung könnte zwar in Word 2007 durchgeführt werden, Word kann jedoch nicht geöffnet und ausgeführt werden effizient auf Dateien dieser Größe.  EditPad Pro kann mit Daten dieser Größenordnung vernünftig umgehen.

A. Öffnen Sie die Datei allCountries.txt in EditPad Pro.

B. Satztrennzeichen festlegen. Wählen Sie im Menü "Convert" (Hauptmenü) "To Windows (CR LF)" aus.  Dadurch wird das Datensatztrennzeichen auf ' ' gesetzt.

Dies dauerte in EditPad Pro mehrere Minuten, nachdem die Option "Zu Windows (CR LF)" ausgewählt wurde - vermutlich wurde die Datei in den Speicher geladen und die angeforderte Operation ausgeführt.

C. Legen Sie die Textcodierung fest. Wählen Sie im Menü "Konvertieren" die Option "Textcodierung" aus. 

Beachten Sie im Menü Textkodierung die Originalkodierung, eingestellt auf Unicode, UTF-8.  Wählen Sie die Schaltfläche "Originaldaten mit einem anderen Zeichensatz kodieren.".". Wählen Sie unter Neue Kodierung die Option "Unicode, UTF-16 Little Endian" .

Nachdem ich auf "OK" geklickt hatte, kreischte meine bescheidene Dual-Proc-Maschine mit 2 GB RAM über niedrigen virtuellen Speicher, verarbeitete die Datei jedoch weiter.

D. Legen Sie den Byte-Order-Marker (BOM) fest.  Wählen Sie im Menü "Optionen" (Hauptmenü) "Dateitypen konfigurieren. ".

Wählen Sie die Registerkarte "Encoding".  Stellen Sie sicher, dass unter File Types "Text Document" ausgewählt ist. Stellen Sie sicher, dass die Textkodierung wie folgt eingestellt ist:

Hinweis zum standardmäßigen Zeilenumbruchstil: Während es scheint, dass der Zeilenumbruch bereits unter Stopp b gesetzt wurde. (oben), es scheint, dass das Setzen des Zeilenumbruchs an beiden Stellen erforderlich ist, obwohl nicht offensichtlich ist, warum.

Hinweis zum Byte Order Marker (BOM): Sie können die Stückliste als FF FE-Bytes am Anfang der Datei sehen, indem Sie in EditPad Pro Strg+H drücken (dies schaltet EditPad Pro in den Hex-Anzeigemodus). Wenn Ihre Datei die Stückliste nicht enthält, beschwert sich SQL Server beim Laden von Daten, dass die ". Datei hat keine Unicode-Signatur."

e.  Erstellen Sie eine neue Dateikopie, die für SQL Server 2008 korrekt codiert ist. Wählen Sie im Menü "Datei" (Hauptmenü) "Kopie speichern unter. ".

Speichern Sie die Datei unter dem gewünschten Namen (ich habe allCountries_utf16.txt verwendet):

Die Datei allCountries_utf16.txt ist jetzt eine Unicode-UTF-16-, Stücklisten-codierte Textdatei mit tabulatorgetrennten (' ') Feldern und CRLF-Zeilenabschlusszeichen (' '), bereit für SQL Server 2008 .

Bevor wir diesen Abschnitt verlassen, hier einige Statistiken:

allCountries.zip
   174,594 KB

allCountries.txt
   783.093 KB

allCountries_utf16.txt
1.563.976 KB

Erstellen Sie eine Datenbanktabelle für die GeoNames-Daten

Hier ist die T-SQL zum Erstellen einer Tabelle namens GeoNames.

Hinweis zur Spalte "Alternativenames": Diese Spalte enthält das Feld GeoNames, das Unicode (UTF-8, UTF-16) erfordert.

Laden Sie die GeoNames-Daten

Hinweis zum ROWTERMINATOR: Während ich den Zeilenterminator in der Datei allCountries_utf16.txt in ' ' geändert habe, verlangt SQL Server seltsamerweise, dass der Zeilenterminator auf ' ' gesetzt wird.&160 Dafür gibt es keine gute Erklärung.

Geodatenspalte hinzufügen, aktualisieren und indizieren

Die aktuelle Tabelle enthält keine Spalte für native räumliche Daten.  Da die Daten in geografischen WGS84-Koordinaten vorliegen, habe ich den geografischen Datentyp für die neue Spalte verwendet:

ALTER TABLE GeoNames
  HINZUFÜGEN GEOGRAPHIE NULL
GEHEN

Um die neue geografische Spalte (geog) zu füllen, habe ich den STGeomFromText-Konstruktor verwendet, um ein POINT-Feature für jede GeoNames-Zeile zu erstellen.&160 Da es sich um einen textbasierten Konstruktor handelt, stammen die Längen- und Breitengraddaten aus Spalten mit ähnlichem Namen, müssen mit der CAST-Funktion in Text umgewandelt werden.  Die SRID für den STGeomFromText-Konstruktor wird auf 4326 gesetzt, den EPSG-Wert für WGS84-Koordinaten.

GeoNames AKTUALISIEREN
  SET geog = GEOGRAPHY::STGeomFromText
('POINT(' + CAST(Längengrad AS CHAR(20)) 
+ ' ' + CAST(Breitengrad AS CHAR(20)) + ')',4326)
GEHEN
--(6906334 Zeile(n) betroffen) (00:09:40)

Hinweis zur Koordinatenreihenfolge: Da dies ein OGC-basierter Operator ist, wird die WKT gebildet als: 'POINT (<longitude> <latitude>)'.

Um einen räumlichen Index zu erstellen, muss die Tabelle einen Primärschlüssel haben.  Während ich den Primärschlüssel in der CREATE TABLE DDL hätte erstellen können, hätte dies bedeutet, dass die Daten in einen vorhandenen Index geladen wurden, was die Verlangsamung der Ladevorgang erheblich.

ALTER TABLE GeoNames
  BEDINGUNG HINZUFÜGEN pk_geonames_geonameid
  PRIMÄRSCHLÜSSEL (geonameid )
GEHEN

Hier ist die DDL zum Erstellen eines räumlichen Indexes für die Geografiespalte geog:

RÄUMLICHEN INDEX ERSTELLEN geonames_mmmm16_sidx
   ON GeoNames(geog)
   GEOGRAPHY_GRID VERWENDEN
   MIT (
     GITTER = (MITTEL, MITTEL, MITTEL, MITTEL),
     CELLS_PER_OBJECT = 16,
     PAD_INDEX = EIN

Beispiel für eine räumliche Abfrage

Als Beispiel für die Art von Abfragen, die jetzt mit der GeoNames-Tabelle unterstützt werden, betrachten Sie die folgende Abfrage, die "alle Ortsnamen innerhalb eines Kilometers von der Grenze von Travis County, Texas" finden fragt:

Notiz: der Distance-Parameter für die STBuffer()-Methode (Geography-Datentyp) ist in Metern.

DECLARE @g GEOGRAPHY
DECLARE @h GEOGRAPHY
DECLARE @i GEOGRAPHY
DECLARE @j GEOGRAPHY
SELECT @g = geog FROM US_Counties WHERE NAME = 'Travis'
SELECT @h = @g.STBuffer(1000)  -- Positiver Puffer um Travis County
SELECT @i = @g.STBuffer(-1000) -- Negativer Puffer um Travis County
SELECT @j = @h.STDifference(@i)-- Polygon (Puffer "band" um die Grenze)
SELECT name FROM GeoNames WHERE geog.STIntersects(@j)=1 
  NACH Name ASC BESTELLEN
--(91 Zeilen betroffen)
--SQL Server-Ausführungszeiten:
--Verstrichene Zeit = 823 ms.

Hier ist die Liste der Ortsnamen, die von der Abfrage zurückgegeben werden:

Anderson Mill
Anderson Mill Grundschule
Apfelfrühling
Apfel Frühlingshohl
Flughafen Austin Air Ranch
Austin Raceway Park
Balcones Country Club
Balcones Country Club See
Balcones Country Club Lake Dam
Bärenbach
Best Western Southgate Inn Ste
Katholische Kirche des seligen Juan Diego
Bonnet Friedhof
Boultinghouse-Berg
Friedhof Bratton
Bridgeway-Gemeindekirche
Kambrischer Bach
Canyon Vista Mittelschule
Canyon Vista-Pool
Cedar Park High School
Zentrum Unionskirche
Kreideknopf
Kreideknopf-Zweig
Kinderevangelisations-Gemeinschaftskirche
Kirche Christi - Pond Springs
Clarence Washington Farm Dam
Clarence Washington Farm Lake
Cottonwood-Zweig
Crestwood Suites - Austin
Cypress Creek Baptist Church

Cypress Grundschule
Teufelshöhle
Esa Austin-Round Rock-Süd
Fall Creek Friedhof
Fitzhugh
Fitzhugh-Friedhof
Garfield Pumpstation
Gateway Community Church
Homosexuell Hollow
Hamilton Hill
Hammetts Crossing
Hampton Inn Austin Round Rock
Harris-Zweig
Haynie Flat Friedhof
Hilton Garden Inn Round Rock 
Hope Presbyterian Church
Huddleston-Friedhof
Friedhof Ingram
Jollyville
Friedhof von Jollyville
Jollyville Grundschule
KGTN-AM (Creedmoor)
König Ranch
La Frontera in Round Rock
La Quinta Inn & Suites Round Rock South
Manchaca Optimist Youth Sports Complex
Manchaca-Quellen
Marriott Austin Nord
Martin Hill
McNeil

McNeil High School
Merrelltown
Muleshoe Bend
Muleshoe Bend Trail
Gemeindekirche der Neuen Hoffnung
Friedhof Niederwald
North Creek Park
Teichquellen
Presbyterianische Kirche der Hügel
Lila Salbei Grundschule
Rattan Creek Trail
Red Bluff Creek
Residence Inn By Marriott Austin Round Rock
Friedhof von Rhodos
Rim Rock Trail
Round Rock Koreanische Presbyterian Church
Round Rock Opportunity Center
Roy Creek
Katholische Kirche St. Vinzenz von Paul
Kieshügel
Signalhügel
Spicewood Grundschule
Spillar-Ranch
Studio 6 Austin Nordwest
Tanglewood Frühling
Texas kein Name Nummer 9 Dam
Die Marbridge-Schule
Türkei Bend
Truthahnkurvenweg
Friedhof von Vasquez
Waldhügel

Hier ist das visuelle Ergebnis der Ortsnamenstandorte innerhalb des Kreisgrenzenpuffers, das in Management Studio präsentiert wird:

Hier ist eine detailliertere Ansicht (die tatsächlichen Punktpositionen werden durch die Blockpunkte in der Mitte jedes Punktsymbols dargestellt):

Und da haben Sie es - Leistung unter einer Sekunde gegen 6,9 Millionen Zeilen mit einem komplexen räumlichen Objekt auf einer sehr bescheidenen Maschine.


SQL Server unterstützt Unicode, verwendet jedoch wie Java nur UTF-16 Little Endian (auch UCS-2) für Unicode-Daten in NCHAR-, NVARCHAR- und NTEXT-Feldern. Ich gehe davon aus, dass Sie über das BCP-Dienstprogramm sprechen, das nur UCS-2-Daten beim Importieren unterstützt (es wird UTF-8 nicht konvertieren).

Andere SQL Server-Tools unterstützen möglicherweise die On-the-Fly-Konvertierung von UTF-8-Daten (z. B. SQL Server Integration Services (SSIS)). Es ist jedoch möglicherweise besser, Ihre Dateien mit einem Open-Source-Befehlszeilentool vorzuverarbeiten, um UTF-8 bis UTF-16 Little Endian zu erstellen, und dann BCP zu verwenden, wenn dies Ihre Toolpräferenz ist.


Microsoft-Kurs 40565 Modernisierung der Datenanalyse mit SQL Server 2019

Wir bieten jetzt den Microsoft-Kurs 40565 Modernizing Data Analytics with SQL Server 2019 für hochwertige Azure SQL Server 2019-Schulungen an.

SQL Server 2019
Docker
Linux
Apache HDFS
Apache Knox
Apache Spark
SQL Server Machine Learning-Dienste
Azure Data Studio
Azure Kubernetes-Dienst (AKS)
SQL Server Management Studio

Für die Labs benötigen Sie möglicherweise SQL Server Management Studio (SSMS) v18.0 oder höher.
Azure Data Studio
SQL Server 2019-Erweiterung
mssqlctl
kubectl

Was Sie an SQL Server 2019 lieben werden
SQL Server 2019 bietet innovative Sicherheits- und Compliance-Funktionen, branchenführende Leistung, geschäftskritische Verfügbarkeit und erweiterte Analysen für alle Ihre Daten-Workloads, jetzt mit integrierter Unterstützung für Big Data.
Intelligenz über alle Daten
SQL Server ist ein Hub für die Datenintegration. Liefern Sie transformative Erkenntnisse über strukturierte und unstrukturierte Daten mit der Leistungsfähigkeit von SQL Server und Spark.
Wahl der Sprache und Plattform
Erstellen Sie moderne Anwendungen mit innovativen Funktionen und verwenden Sie die Sprache und Plattform Ihrer Wahl. Jetzt für Windows, Linux und Container.
Branchenführende Leistung
Profitieren Sie von bahnbrechender Skalierbarkeit, Leistung und Verfügbarkeit für geschäftskritische, intelligente Anwendungen, Data Warehouses und Data Lakes.
Erweiterte Sicherheitsfunktionen
Schützen Sie ruhende und verwendete Daten. SQL Server war in den letzten 8 Jahren die am wenigsten anfällige Datenbank in der NIST-Schwachstellendatenbank.
Treffen Sie schnellere, bessere Entscheidungen
Power BI-Berichtsserver bietet Ihren Benutzern Zugriff auf umfangreiche, interaktive Power BI-Berichte und die Enterprise-Berichterstellungsfunktionen von SQL Server Reporting Services.

Die Vorschau von L Server 2019 baut auf früheren Versionen auf, um SQL Server als Plattform zu erweitern, die Ihnen die Wahl zwischen Entwicklungssprachen, Datentypen, lokal oder Cloud und Betriebssystemen bietet. In diesem Artikel werden die Neuerungen für die Vorschau von SQL Server 2019 zusammengefasst.
Der Artikel fasst die Funktionen in jeder Version zusammen und weist auf weitere Details für jede Funktion hin. Der Abschnitt Details enthält technische Details zu Funktionen, die möglicherweise nicht in der Hauptdokumentation verfügbar sind. Die anderen Abschnitte dieses Artikels enthalten Details zu allen bisher für diese SQL Server 2019-Vorschau veröffentlichten Features.
Weitere Informationen und bekannte Probleme finden Sie in den Versionshinweisen zur Vorschauversion von SQL Server 2019.
Testen Sie die Vorschau von SQL Server 2019!
Aus dem Evaluierungscenter herunterladen Laden Sie die Vorschau von SQL Server 2019 herunter, um sie unter Windows zu installieren.
Installieren Sie unter Linux für Red Hat Enterprise Server, SUSE Linux Enterprise Server und Ubuntu.
Ausführen auf SQL Server 2019-Vorschau auf Docker.
Verwenden Sie die neuesten Tools für die beste Erfahrung mit der SQL Server 2019-Vorschau.
CTP 2.5 April 2019
Community Technology Preview (CTP) 2.5 ist die neueste öffentliche Version der SQL Server 2019-Vorschau. Diese Version enthält Verbesserungen gegenüber früheren CTP-Versionen, um Fehler zu beheben, die Sicherheit zu verbessern und die Leistung zu optimieren. Darüber hinaus werden die folgenden Funktionen für die SQL Server 2019-Vorschau CTP 2.5 hinzugefügt oder verbessert.
Big-Data-Cluster

Neue Funktion oder Update-Details
Bereitstellungsprofile Verwenden Sie standardmäßige und benutzerdefinierte JSON-Dateien für die Bereitstellungskonfiguration für Big-Data-Cluster-Bereitstellungen anstelle von Umgebungsvariablen.
Aufgeforderte Bereitstellungen mssqlctl cluster create fordert jetzt alle erforderlichen Einstellungen für Standardbereitstellungen auf.
Änderungen des Dienstendpunkts und des Pods Weitere Informationen finden Sie in den Versionshinweisen zu Big Data-Clustern.
mssqlctl-Verbesserungen Verwenden Sie mssqlctl, um externe Endpunkte aufzulisten und die Version von mssqlctl mit dem Parameter –version zu überprüfen.
Anleitung zur Offline-Installation für Offline-Big-Data-Cluster-Bereitstellungen.
HDFS-Tiering verbessert HDFS-Tiering gegenüber Amazon S3-Speicher. OAuth-Unterstützung für ADLS Gen2. Caching-Funktionalität für bessere Leistung. Weitere Informationen finden Sie unter HSDFS-Tiering
Spark-zu-SQL-Server-Connector Lesen und Schreiben von SQL Server von Spark mithilfe des MSSQL JDBC-Connectors

Neue Funktion oder Update-Details
PolyBase unter Linux. Installieren Sie PolyBase unter Linux für Nicht-Hadoop-Connectors.

Zuordnung des PolyBase-Typs.
Neues Java-Sprach-SDK für SQL Server. Vereinfacht die Entwicklung von Java-Programmen, die von SQL Server ausgeführt werden können. Siehe Neuerungen in SQL Server Machine Learning Services.
Der Umfang der in DMF sys.dm_exec_query_plan_stats verfügbaren Pläne wurde erweitert. Siehe sys.dm_exec_query_plan_stats1
Neue datenbankbezogene Konfiguration LAST_QUERY_PLAN_STATS zum Aktivieren von sys.dm_exec_query_plan_stats. Siehe ALTER DATABASE SCOPED CONFIGURATION
Neue Raumbezugskennungen (SRIDs). Das australische GDA2020 bietet ein robusteres und genaueres Datum, das enger an globalen Positionsbestimmungssystemen ausgerichtet ist. Die neuen SRIDs sind:

Die Ansicht sys.spatial_reference_systems enthält Definitionen neuer SRIDs.

1 Dies ist eine Opt-in-Funktion und erfordert die Aktivierung des Ablaufverfolgungsflags 2451 oder das Setzen der datenbankbezogenen Konfiguration LAST_QUERY_PLAN_STATS auf ON.
CTP 2.4 März 2019
Big-Data-Cluster

Neue Funktion oder Update-Details
Anleitung zur GPU-Unterstützung für die Ausführung von Deep Learning mit TensorFlow in Spark. Stellen Sie einen Big-Data-Cluster mit GPU-Unterstützung bereit und führen Sie TensorFlow aus.
SqlDataPool- und SqlStoragePool-Datenquellen werden nicht mehr standardmäßig erstellt. Erstellen Sie diese bei Bedarf manuell. Siehe die bekannten Probleme.
INSERT INTO SELECT-Unterstützung für den Datenpool. Ein Beispiel finden Sie unter Tutorial: Daten in einen SQL Server-Datenpool mit Transact-SQL aufnehmen.
Option SCALEOUTEXECUTION FORCE und SCALEOUTEXECUTION DEAKTIVIEREN. Siehe Versionshinweise zu Big-Data-Clustern.
Aktualisierte Empfehlungen für die AKS-Bereitstellung. Beim Auswerten von Big-Data-Clustern auf AKS empfehlen wir jetzt die Verwendung eines einzelnen Knotens der Größe Standard_L8s.
Spark-Laufzeit-Upgrade auf Spark 2.4.

Neue Funktion oder Update-Details
Die Fehlermeldung zum Abschneiden enthält standardmäßig Tabellen- und Spaltennamen sowie abgeschnittene Werte. VERBOSE_TRUNCATION_WARNINGS
Neues DMF sys.dm_exec_query_plan_stats gibt für die meisten Abfragen das Äquivalent des letzten bekannten tatsächlichen Ausführungsplans zurück.sys.dm_exec_query_plan_stats1
Das neue erweiterte Ereignis query_post_execution_plan_profile sammelt das Äquivalent eines tatsächlichen Ausführungsplans basierend auf leichtgewichtigem Profiling, im Gegensatz zu query_post_execution_showplan, das Standard-Profiling verwendet. Infrastruktur zur Abfrageprofilerstellung
Transparent Data Encryption (TDE)-Scan – anhalten und fortsetzen. Transparent Data Encryption (TDE)-Scan – aussetzen und fortsetzen

1 Dies ist eine Opt-in-Funktion und erfordert die Aktivierung des Ablaufverfolgungsflags 2451.
SQL Server Analysis Services (SSAS)

Neue Funktion oder Update-Details
Viele-zu-viele-Beziehungen in tabellarischen Modellen. Viele-zu-viele-Beziehungen in tabellarischen Modellen
Eigenschaftseinstellungen für die Ressourcenverwaltung. Eigenschaftseinstellungen für die Ressourcenverwaltung

CTP 2.3 Februar 2019
Big-Data-Cluster

Neue Funktion oder Update-Details
Senden Sie Spark-Jobs in Big-Data-Clustern in IntelliJ. Senden von Spark-Jobs auf SQL Server-Big-Data-Clustern in IntelliJ
Gemeinsame CLI für Anwendungsbereitstellung und Clusterverwaltung. So stellen Sie eine App auf einem Big-Data-Cluster von SQL Server 2019 bereit (Vorschau)
VS Code-Erweiterung zum Bereitstellen von Anwendungen in einem Big-Data-Cluster. So verwenden Sie VS Code zum Bereitstellen von Anwendungen in SQL Server-Big-Data-Clustern
Änderungen an der Befehlsverwendung des mssqlctl-Tools. Weitere Informationen finden Sie unter den bekannten Problemen für mssqlctl.
Verwenden Sie Sparklyr in Big-Data-Clustern. Verwenden Sie Sparklyr im Big-Data-Cluster von SQL Server 2019
Binden Sie externen HDFS-kompatiblen Speicher in Big-Data-Cluster mit HDFS-Tiering ein. Siehe HDFS-Tiering.
Neue einheitliche Verbindungserfahrung für die SQL Server-Masterinstanz und das HDFS/Spark-Gateway. Siehe SQL Server-Masterinstanz und HDFS/Spark Gateway.
Beim Löschen eines Clusters mit mssqlctl cluster delete werden jetzt nur die Objekte im Namespace gelöscht, die Teil des Big-Data-Clusters waren. Der Namensraum wird nicht gelöscht. In früheren Versionen löschte dieser Befehl jedoch den gesamten Namespace.
Die Namen der Sicherheitsendpunkte wurden geändert und konsolidiert. service-security-lb und service-security-nodeport wurden zum endpoint-security-endpoint konsolidiert.
Die Namen der Proxy-Endpunkte wurden geändert und konsolidiert. service-proxy-lb und service-proxy-nodeport wurden in den endpoint-service-proxy-Endpunkt konsolidiert.
Die Namen der Controller-Endpunkte wurden geändert und konsolidiert. service-mssql-controller-lb und service-mssql-controller-nodeport wurden im endpoint-controller-enpoint konsolidiert.

Neue Funktion oder Update-Details
Die Aktivierung der beschleunigten Datenbankwiederherstellung kann pro Datenbank aktiviert werden. Beschleunigte Datenbankwiederherstellung
Abfragespeicherplan erzwingt Unterstützung für schnellen Vorlauf und statische Cursor. Erzwingungsunterstützung für schnellen Vorlauf und statische Cursor planen
Reduzierte Neukompilierungen für Workloads mit temporären Tabellen in mehreren Bereichen. Reduzierte Neukompilierungen für Workloads
Verbesserte Skalierbarkeit indirekter Checkpoints. Verbesserte Skalierbarkeit indirekter Prüfpunkte
UTF-8-Unterstützung: Fügt Unterstützung für die Verwendung der UTF-8-Zeichencodierung mit einer BIN2-Sortierung (UTF8_BIN2) hinzu. Sortierung und Unicode-Unterstützung
Definieren Sie kaskadierte Löschaktionen für eine Kantenbeschränkung in einer Graphdatenbank. Randbeschränkungen
Aktivieren oder deaktivieren Sie LIGHTWEIGHT_QUERY_PROFILING mit der neuen datenbankbezogenen Konfiguration. VERBOSE_TRUNCATION_WARNINGS

Neue Funktion oder Update-Details
Azure Data Studio unterstützt Azure Active Directory. Azure Data Studio
Die Benutzeroberfläche der Notebookansicht wurde in Azure Data Studio Core verschoben. So verwalten Sie Notebooks in Azure Data Studio
Neuer Assistent zum Erstellen externer Datenquellen aus Hadoop Distributed File System (HDFS) zu SQL Server Big Data Cluster hinzugefügt. Werkzeuge
Verbesserte Benutzeroberfläche des Notebook-Viewers. Werkzeuge
Neue Notebook-APIs hinzugefügt. Werkzeuge
Der Befehl "Reinstall Notebook Dependencies" wurde hinzugefügt, um bei Python-Paketaktualisierungen zu helfen. Werkzeuge
Starten Sie Azure Data Studio über SSMS. Werkzeuge

Neue Funktion oder Update-Details
Berechnungsgruppen im tabellarischen Modell. Berechnungsgruppen im Tabellenmodell

CTP 2.2 Dezember 2018
Big-Data-Cluster

Neue Funktion oder Update-Details
Verwenden Sie SparkR aus Azure Data Studio in einem Big-Data-Cluster.
Stellen Sie Python- und R-Apps bereit. Bereitstellen von Anwendungen mit mssqlctl

Neue Funktion oder Update-Details
Fügt Unterstützung für die Verwendung der UTF-8-Zeichencodierung mit SQL Server Replication hinzu. Sortierung und Unicode-Unterstützung

Neue Funktion oder Update-Details
Always On-Verfügbarkeitsgruppe für Docker-Container mit Kubernetes. Always On-Verfügbarkeitsgruppen für Container

CTP 2.1 November 2018
Datenbank-Engine

Neue Funktion oder Update-Details
Fügt Unterstützung für die Auswahl der UTF-8-Sortierung als Standard hinzu. SQL Server 2019-Vorschau-Setup. Sortierung und Unicode-Unterstützung
Scalar UDF Inlining wandelt skalare benutzerdefinierte Funktionen (UDF) automatisch in relationale Ausdrücke um und bettet sie in die aufrufende SQL-Abfrage ein. Skalares UDF-Inlining
Der Spaltenbefehl sys.dm_exec_requests der dynamischen Verwaltungsansicht zeigt SELECT (STATMAN) an, wenn ein SELECT auf den Abschluss einer synchronen Statistikaktualisierungsoperation wartet, bevor die Abfrageausführung fortgesetzt wird. sys.dm_exec_requests
Der neue Wartetyp WAIT_ON_SYNC_STATISTICS_REFRESH wird in der dynamischen Verwaltungsansicht sys.dm_os_wait_stats angezeigt. Es zeigt die akkumulierte Zeit auf Instanzebene an, die für synchrone Statistikaktualisierungsvorgänge aufgewendet wurde. sys.dm_os_wait_stats
Der Hybridpufferpool ist ein neues Feature des SQL Server-Datenbankmoduls, bei dem auf Datenbankseiten, die sich in Datenbankdateien befinden, die auf einem persistenten Speichergerät (PMEM) platziert sind, bei Bedarf direkt zugegriffen wird. Hybrider Pufferpool
Die Vorschau von SQL Server 2019 führt statische Datenmaskierung ein. Sie können die statische Datenmaskierung verwenden, um vertrauliche Daten in Kopien von SQL Server-Datenbanken zu bereinigen. Statische Datenmaskierung
Verwenden von abgeleiteten Tabellen- oder Ansichtsaliasen in Graphenübereinstimmungsabfragen Graph Edge Constraints

Neue Funktion oder Update-Details
Neue Containerregistrierung für SQL Server. Erste Schritte mit SQL Server-Containern auf Docker

Neue Funktion oder Update-Details
Azure Data Studio unterstützt Connect and Manage SQL Server 2019 Preview Big Data Cluster.

CTP 2.0 Oktober 2018
Big-Data-Cluster

Neue Funktion oder Update-Details
Stellen Sie einen Big Data-Cluster mit SQL Server- und Spark-Linux-Containern auf Kubernetes bereit.
Greifen Sie über HDFS auf Ihre Big Data zu.
Führen Sie erweiterte Analysen und maschinelles Lernen mit Spark aus.
Verwenden Sie Spark-Streaming für Daten in SQL-Datenpools.
Führen Sie Abfragebücher aus, die ein Notebook-Erlebnis in Azure Data Studio bieten. Datentechnik

Neue Funktion oder Update-Details
Datenbank COMPATIBILITY_LEVEL 150 wurde hinzugefügt. ALTER DATABASE-Kompatibilitätsgrad (Transact-SQL)
Fortsetzbarer Online-Index erstellen. INDEX ERSTELLEN (Transact-SQL)
Rückmeldung zur Speicherzuweisung im Zeilenmodus. Rückmeldung zur Speicherzuweisung im Zeilenmodus
Ungefähre ANZAHL DISTINCT. Ungefähre Abfrageverarbeitung
Batch-Modus auf Rowstore. Batch-Modus auf Rowstore
Verzögerte Kompilierung von Tabellenvariablen. Tabellenvariable verzögerte Kompilierung
Java-Spracherweiterung. Java-Spracherweiterung
Führen Sie Ihre aktuellen Diagrammdaten aus Knoten- oder Kantentabellen mit neuen Daten zusammen, indem Sie die MATCH-Prädikate in der MERGE-Anweisung verwenden.
Randeinschränkungen. Randbedingungen für Graphen
Datenbankbezogene Standardeinstellung für Online- und fortsetzbare DDL-Vorgänge.
Verfügbarkeitsgruppen unterstützen bis zu 5 synchrone sekundäre Replikate. Verfügbarkeitsgruppen
Umleitung der Lese-/Schreibverbindung vom sekundären zum primären Replikat Umleitung der Lese-/Schreibverbindung vom sekundären zum primären Replikat – Always On Availability Groups
SQL-Datenermittlung und -klassifizierung. SQL-Datenerkennung und -Klassifizierung
Erweiterte Unterstützung für persistente Speichergeräte. Hybrider Pufferpool
Unterstützung für Columnstore-Statistiken im DBCC CLONEDATABASE Stats-Blob für Columnstore-Indizes
sp_estimate_data_compression_savings führt COLUMNSTORE und COLUMNSTORE_ARCHIVE ein. Überlegungen zu Columnstore-Indizes
Machine Learning-Dienste, die auf dem Windows Server-Failovercluster unterstützt werden. Was ist neu – SQL Server Machine Learning Services
Machine Learning-Unterstützung für partitionsbasierte Modellierung. Was ist neu – SQL Server Machine Learning Services
Standardmäßig aktivierte Lightweight-Query-Profiling-Infrastruktur Lightweight-Query-Ausführungsstatistik-Profiling-Infrastruktur v3
Neue PolyBase-Connectors für SQL Server, Oracle, Teradata und MongoDB. Was ist PolyBase?
sys.dm_db_page_info(database_id, file_id, page_id, mode) gibt Informationen zu einer Seite in einer Datenbank zurück. sys.dm_db_page_info (Transact-SQL)
Immer mit sicheren Enklaven verschlüsselt. Immer verschlüsselt mit sicheren Enklaven
Erstellen und erstellen Sie einen geclusterten Online-Columnstore-Index. Indexoperationen online durchführen

Neue Funktion oder Update-Details
Replikationsunterstützung SQL Server-Replikation unter Linux
Unterstützung für den Microsoft Distributed Transaction Coordinator (MSDTC) So konfigurieren Sie MSDTC unter Linux
OpenLDAP-Unterstützung für AD-Anbieter von Drittanbietern Tutorial: Active Directory-Authentifizierung mit SQL Server unter Linux verwenden
Machine Learning unter Linux Konfigurieren von Machine Learning unter Linux

Neue Funktion oder Update-Details
Das Master Data Services (MDS)-Portal ist nicht mehr von Silverlight abhängig. Alle früheren Silverlight-Komponenten wurden durch HTML-Steuerelemente ersetzt.

Neue Funktion oder Update-Details
Zertifikatverwaltung in SQL Server Configuration Manager Zertifikatverwaltung (SQL Server Configuration Manager)

Neue Funktion oder Update-Details
Azure Data Studio unterstützt Connect and Manage SQL Server 2019 Preview Big Data Cluster. Was ist Azure Data Studio?
Unterstützt Szenarien mit SQL Server-Big-Data-Clustern. SQL Server 2019-Erweiterung (Vorschau)
SQL Server Management Studio (SSMS) 18.0 (Vorschau): Unterstützt die Vorschau von SQL Server 2019.
Unterstützung für Always Encrypted mit sicheren Enklaven. Immer mit Secure Enclaves verschlüsselt

Andere Dienstleistungen
Ab CTP 2.4 führt die Vorschau von SQL Server 2019 keine neuen Funktionen für die folgenden Dienste ein:
SQL Server-Integrationsdienste (SSIS)
SQL Server Reporting Services (SSRS)
Einzelheiten
Big-Data-Cluster

SQL Server 2019-Vorschau Big Data-Cluster ermöglichen neue Szenarien, einschließlich der folgenden:
GPU-Unterstützung für die Ausführung von Deep Learning mit TensorFlow in Spark. (CTP 2.4)
Spark-Laufzeit-Upgrade auf Spark 2.4. (CTP 2.4)
INSERT INTO SELECT-Unterstützung für den Datenpool.)(CTP 2.4)
FORCE SCALEOUTEXECUTION und DISABLE SCALEOUTEXECUTION Optionsklausel für externe Tabellenabfragen. (CTP 2.4)
Senden Sie Spark-Jobs auf SQL Server 2019-Vorschau für Big-Data-Cluster in IntelliJ. (CTP 2.3)
Erfahrung in der Anwendungsbereitstellung und -verwaltung für eine Vielzahl von datenbezogenen Apps, einschließlich der Operationalisierung von Modellen für maschinelles Lernen mit R und Python, Ausführen von SQL Server Integration Services (SSIS)-Aufträgen und mehr. (CTP 2.3)
Verwenden Sie Sparklyr in SQL Server 2019-Big-Data-Clustern in der Vorschau. (CTP 2.3)
Binden Sie externen HDFS-kompatiblen Speicher in Big-Data-Cluster mit HDFS-Tiering ein. (CTP 2.3)
Verwenden Sie SparkR aus Azure Data Studio in einem Big-Data-Cluster. (CTP 2.2)
Stellen Sie Python- und R-Apps bereit. (CTP 2.2)
Stellen Sie einen Big Data-Cluster mit SQL Server- und Spark-Linux-Containern auf Kubernetes bereit. (CTP 2.0)
Greifen Sie über HDFS auf Ihre Big Data zu. (CTP 2.0)
Führen Sie erweiterte Analysen und maschinelles Lernen mit Spark aus. (CTP 2.0)
Verwenden Sie Spark-Streaming für Daten zu SQL-Datenpools. (CTP 2.0)
Führen Sie Abfragebücher aus, die ein Notebook-Erlebnis in Azure Data Studio bieten. (CTP 2.0)
Notiz
SQL Server-Big-Data-Cluster sind erstmals als eingeschränkte öffentliche Vorschau über das SQL Server 2019 Early Adoption Program verfügbar. Um den Zugriff anzufordern, registrieren Sie sich hier und geben Sie Ihr Interesse an, SQL Server-Big-Data-Cluster auszuprobieren. Microsoft wird alle Anfragen prüfen und so schnell wie möglich antworten.
Datenbankmodul

Die Vorschau von SQL Server 2019 führt die folgenden neuen Features für das SQL Server-Datenbankmodul ein oder verbessert sie.
Neues erweitertes Ereignis query_post_execution_plan_profile (CTP 2.4)
Das neue erweiterte Ereignis query_post_execution_plan_profile sammelt das Äquivalent eines tatsächlichen Ausführungsplans basierend auf leichtgewichtigem Profiling, im Gegensatz zu query_post_execution_showplan, das Standard-Profiling verwendet. Weitere Informationen finden Sie unter Infrastruktur für die Abfrageprofilerstellung.
Beispiel 1 – Erweiterte Ereignissitzung mit Standardprofilerstellung
SQL

Kopieren
EREIGNIS-SITZUNG ERSTELLEN [QueryPlanOld] AUF SERVER
EREIGNIS HINZUFÜGEN sqlserver.query_post_execution_showplan(
AKTION(sqlos.task_time, sqlserver.database_id,
sqlserver.database_name, sqlserver.query_hash_signed,
sqlserver.query_plan_hash_signed, sqlserver.sql_text))
ADD TARGET package0.event_file(SET filename = N’C:TempQueryPlanStd.xel’)
MIT (MAX_MEMORY=4096 KB, EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,
MAX_DISPATCH_LATENCY=30 SEKUNDEN, MAX_EVENT_SIZE=0 KB,
MEMORY_PARTITION_MODE=NONE, TRACK_CAUSALITY=OFF, STARTUP_STATE=OFF)
Beispiel 2 – Extended Event-Sitzung mit Lightweight-Profiling
SQL

Kopieren
EREIGNISSITZUNG ERSTELLEN [QueryPlanLWP] AUF SERVER
EREIGNIS HINZUFÜGEN sqlserver.query_post_execution_plan_profile(
AKTION(sqlos.task_time, sqlserver.database_id,
sqlserver.database_name, sqlserver.query_hash_signed,
sqlserver.query_plan_hash_signed, sqlserver.sql_text))
ADD TARGET package0.event_file(SET filename=N’C:TempQueryPlanLWP.xel’)
MIT (MAX_MEMORY=4096 KB, EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,
MAX_DISPATCH_LATENCY=30 SEKUNDEN, MAX_EVENT_SIZE=0 KB,
MEMORY_PARTITION_MODE=NONE, TRACK_CAUSALITY=OFF, STARTUP_STATE=OFF)
Neues DMF sys.dm_exec_query_plan_stats (CTP 2.4)
Das neue DMF sys.dm_exec_query_plan_stats gibt das Äquivalent des letzten bekannten tatsächlichen Ausführungsplans für die meisten Abfragen basierend auf leichtgewichtigem Profiling zurück. Weitere Informationen finden Sie unter sys.dm_exec_query_plan_stats und Query-Profiling-Infrastruktur. Sehen Sie sich das folgende Skript als Beispiel an:
SQL

Kopieren
AUSWÄHLEN *
VON sys.dm_exec_cached_plans
CROSS APPLY sys.dm_exec_query_plan_stats(plan_handle)
WHERE objtype =’Trigger’
GEHEN
Dies ist eine Opt-in-Funktion und erfordert die Aktivierung des Ablaufverfolgungsflags 2451.
Transparent Data Encryption (TDE)-Scan – anhalten und fortsetzen (CTP 2.4)
Um Transparent Data Encryption (TDE) für eine Datenbank zu aktivieren, muss SQL Server einen Verschlüsselungsscan durchführen, der jede Seite aus der Datendatei(en) in den Pufferpool liest und dann die verschlüsselten Seiten wieder auf den Datenträger schreibt. Um dem Benutzer mehr Kontrolle über den Verschlüsselungsscan zu geben, führt die SQL Server 2019-Vorschau die TDE-Scan-–-Suspend-and-Resume-Syntax ein, damit Sie den Scan anhalten können, während die Arbeitsbelastung des Systems hoch ist oder während geschäftskritischer Stunden, und dann setzen Sie den Scan später fort.
Verwenden Sie die folgende Syntax, um den TDE-Verschlüsselungsscan anzuhalten:
SQL

Kopieren
ÄNDERN DER DATENBANK EINSTELLEN DER VERSCHLÜSSELUNG AUSSETZEN
In ähnlicher Weise setzt die folgende Syntax den TDE-Verschlüsselungsscan fort:
SQL

Kopieren
DATENBANK ÄNDERN VERSCHLÜSSELUNG FORTSETZEN
Um den aktuellen Status des Verschlüsselungsscans anzuzeigen, wurde Encryption_scan_state der dynamischen Verwaltungsansicht sys.dm_database_encryption_keys hinzugefügt. Es gibt auch eine neue Spalte namens Encryption_scan_modify_date, die das Datum und die Uhrzeit der letzten Statusänderung des Verschlüsselungsscans enthält. Beachten Sie außerdem, dass beim Neustart der SQL Server-Instanz während der Verschlüsselungsprüfung im angehaltenen Zustand eine Meldung im Fehlerprotokoll beim Start protokolliert wird, die darauf hinweist, dass eine vorhandene Prüfung angehalten wurde.
Beschleunigte Datenbankwiederherstellung (CTP 2.3)
Die beschleunigte Datenbankwiederherstellung verbessert die Datenbankverfügbarkeit erheblich, insbesondere bei lang laufenden Transaktionen, indem der Wiederherstellungsprozess des SQL Server-Datenbankmoduls neu gestaltet wird. Die Datenbankwiederherstellung ist der Prozess, den SQL Server für jede Datenbank verwendet, um in einem transaktionskonsistenten –- oder sauberen –-Zustand zu starten. Eine Datenbank, bei der die beschleunigte Datenbankwiederherstellung aktiviert ist, schließt die Wiederherstellung nach einem Failover oder einem anderen unsauberen Herunterfahren deutlich schneller ab. Ab CTP 2.3 kann die beschleunigte Datenbankwiederherstellung pro Datenbank mit der folgenden Syntax aktiviert werden:
SQL

Kopieren
ALTER DATABASE SET ACCELERATED_DATABASE_RECOVERY =
Notiz
Diese Syntax ist nicht erforderlich, um dieses Feature in Azure SQL DB zu nutzen, wo es während der öffentlichen Vorschau auf Anfrage aktiviert wird. Nach der Aktivierung ist die Funktion standardmäßig aktiviert.
Wenn Sie über kritische Datenbanken verfügen, die anfällig für große Transaktionen sind, experimentieren Sie während der Vorschau mit dieser Funktion. Geben Sie dem SQL Server-Team Feedback.
Unterstützung des Abfragespeicherplans für schnellen Vorlauf und statische Cursor erzwingen (CTP 2.3)
Der Abfragespeicher unterstützt jetzt die Möglichkeit, Abfrageausführungspläne für Fast Forward und statische T-SQL- und API-Cursor zu erzwingen. Das Erzwingen wird jetzt über sp_query_store_force_plan oder über SQL Server Management Studio-Abfragespeicherberichte unterstützt.
Reduzierte Neukompilierungen für Workloads mit temporären Tabellen in mehreren Bereichen (CTP 2.3)
Wenn vor dieser Funktion eine temporäre Tabelle mit einer DML-Anweisung (SELECT, INSERT, UPDATE, DELETE) referenziert wurde, führte dies zu einer Neukompilierung der DML, wenn die temporäre Tabelle von einem Stapel außerhalb des Gültigkeitsbereichs erstellt wurde Anweisung bei jeder Ausführung. Mit dieser Verbesserung führt SQL Server zusätzliche einfache Prüfungen durch, um unnötige Neukompilierungen zu vermeiden:
Überprüfen Sie, ob das Modul außerhalb des Gültigkeitsbereichs, das zum Erstellen der temporären Tabelle zur Kompilierzeit verwendet wird, das gleiche ist, das für aufeinanderfolgende Ausführungen verwendet wird.
Verfolgen Sie alle Änderungen der Datendefinitionssprache (DDL), die bei der ersten Kompilierung vorgenommen wurden, und vergleichen Sie sie mit DDL-Operationen für aufeinanderfolgende Ausführungen.
Das Endergebnis ist eine Reduzierung der überflüssigen Neukompilierungen und des CPU-Overheads.
Verbesserte Skalierbarkeit indirekter Checkpoints (CTP 2.3)
In früheren Versionen von SQL Server kann es bei Benutzern zu nicht nachgebenden Schedulerfehlern kommen, wenn eine Datenbank vorhanden ist, die eine große Anzahl von Dirty Pages generiert, z. B. tempdb. Die Vorschau von SQL Server 2019 führt eine verbesserte Skalierbarkeit für Indirect Checkpoint ein, die dazu beitragen sollte, diese Fehler in Datenbanken mit einer hohen UPDATE/INSERT-Workload zu vermeiden.
UTF-8-Unterstützung (CTP 2.3)
Volle Unterstützung der weit verbreiteten UTF-8-Zeichencodierung als Import- oder Exportcodierung oder als Sortierung auf Datenbank- oder Spaltenebene für Textdaten. UTF-8 ist in den Datentypen CHAR und VARCHAR zulässig und wird aktiviert, wenn die Sortierung eines Objekts in eine Sortierung mit dem Suffix UTF8 erstellt oder geändert wird.
Beispiel: LATIN1_GENERAL_100_CI_AS_SC bis LATIN1_GENERAL_100_CI_AS_SC_UTF8. UTF-8 ist nur für Windows-Sortierungen verfügbar, die zusätzliche Zeichen unterstützen, wie in SQL Server 2012 (11.x) eingeführt. NCHAR und NVARCHAR erlauben nur die UTF-16-Codierung und bleiben unverändert.
Diese Funktion kann je nach verwendetem Zeichensatz zu erheblichen Speichereinsparungen führen. Das Ändern eines vorhandenen Spaltendatentyps mit ASCII-Zeichenfolgen (lateinisch) von NCHAR(10) in CHAR(10) mithilfe einer UTF-8-aktivierten Sortierung führt beispielsweise zu einer Reduzierung des Speicherbedarfs um 50 %. Diese Reduzierung ist darauf zurückzuführen, dass NCHAR(10) 20 Byte zum Speichern erfordert, während CHAR(10) 10 Byte für dieselbe Unicode-Zeichenfolge erfordert.
Weitere Informationen finden Sie unter Sortierung und Unicode-Unterstützung.
CTP 2.1 Fügt Unterstützung für die Auswahl der UTF-8-Sortierung als Standard während des Setups der Vorschau von SQL Server 2019 hinzu.
CTP 2.2 Fügt Unterstützung für die Verwendung der UTF-8-Zeichencodierung mit SQL Server Replication hinzu.
CTP 2.3 Fügt Unterstützung für die Verwendung der UTF-8-Zeichencodierung mit einer BIN2-Sortierung (UTF8_BIN2) hinzu.
Skalares UDF-Inlining (CTP 2.1)
Scalar-UDF-Inlining wandelt skalare benutzerdefinierte Funktionen (UDF) automatisch in relationale Ausdrücke um und bettet sie in die aufrufende SQL-Abfrage ein, wodurch die Leistung von Workloads verbessert wird, die skalare UDFs nutzen. Scalar UDF Inlining erleichtert die kostenbasierte Optimierung von Operationen innerhalb von UDFs und führt zu effizienten Plänen, die mengenorientiert und parallel sind, im Gegensatz zu ineffizienten, iterativen, seriellen Ausführungsplänen. Diese Funktion ist standardmäßig unter dem Datenbankkompatibilitätslevel 150 aktiviert.
Weitere Informationen finden Sie unter Skalar-UDF-Inlining.
Abgeschnittene Fehlermeldung verbessert, um Tabellen- und Spaltennamen und abgeschnittenen Wert einzuschließen (CTP 2.1)
Die Fehlermeldungs-ID 8152 String- oder Binärdaten würden abgeschnitten ist vielen SQL Server-Entwicklern und -Administratoren bekannt, die Datenverschiebungsworkloads entwickeln oder verwalten groß, um in den Zieldatentyp zu passen. Die Fehlerbehebung dieser Fehlermeldung kann zeitaufwändig sein. Die Vorschau von SQL Server 2019 führt eine neue, spezifischere Fehlermeldung (2628) für dieses Szenario ein:
String- oder Binärdaten würden in der Tabelle abgeschnitten ‘%.ls’, Spalte ‘%.ls’. Abgeschnittener Wert: ‘%.*ls’.
Die neue Fehlermeldung 2628 bietet mehr Kontext für das Datenkürzungsproblem und vereinfacht den Fehlerbehebungsprozess.
CTP 2.1 und CTP 2.2 Dies ist eine Opt-in-Fehlermeldung, für die das Ablaufverfolgungsflag 460 aktiviert sein muss.
Die CTP 2.4-Fehlermeldung 2628 wird zur Standardkürzungsmeldung und ersetzt die Fehlermeldung 8152 unter dem Datenbankkompatibilitätslevel 150. Eine neue datenbankbezogene Konfiguration VERBOSE_TRUNCATION_WARNINGS wird eingeführt, um zwischen den Fehlermeldungen 2628 und 8152 zu wechseln, wenn der Datenbankkompatibilitätslevel 150 ist. Weitere Informationen finden Sie unter ÄNDERN SIE DIE DATENBANKBEREICHSKONFIGURATION. Für den Datenbankkompatibilitätsgrad 140 oder niedriger bleibt die Fehlermeldung 2628 eine Opt-in-Fehlermeldung, die erfordert, dass das Ablaufverfolgungsflag 460 aktiviert wird.
Verbesserte Diagnosedaten für das Blockieren von Statistiken (CTP 2.1)
Die Vorschau von SQL Server 2019 bietet verbesserte Diagnosedaten für Abfragen mit langer Ausführungszeit, die auf synchrone Statistikaktualisierungsvorgänge warten. Der Spaltenbefehl sys.dm_exec_requests der dynamischen Verwaltungsansicht zeigt SELECT (STATMAN) an, wenn ein SELECT auf den Abschluss einer synchronen Statistikaktualisierungsoperation wartet, bevor die Abfrageausführung fortgesetzt wird. Außerdem wird der neue Wartetyp WAIT_ON_SYNC_STATISTICS_REFRESH in der dynamischen Verwaltungsansicht sys.dm_os_wait_stats angezeigt. Es zeigt die akkumulierte Zeit auf Instanzebene an, die für synchrone Statistikaktualisierungsvorgänge aufgewendet wurde.
Hybridpufferpool (CTP 2.1)
Der Hybridpufferpool ist ein neues Feature des SQL Server-Datenbankmoduls, bei dem auf Datenbankseiten, die sich in Datenbankdateien befinden, die auf einem persistenten Speichergerät (PMEM) platziert sind, bei Bedarf direkt zugegriffen wird. Da PMEM-Geräte eine sehr geringe Latenzzeit für den Datenzugriff bieten, kann die Engine darauf verzichten, eine Kopie der Daten in einem Bereich "saubere Seiten" des Pufferpools zu erstellen und einfach direkt auf PMEM auf die Seite zugreifen. Der Zugriff erfolgt über Memory Mapped I/O, wie es bei der Aufklärung der Fall ist. Dies bringt Leistungsvorteile durch das Vermeiden einer Kopie der Seite in den DRAM und durch das Vermeiden des E/A-Stapels des Betriebssystems, um auf die Seite im dauerhaften Speicher zuzugreifen. Diese Funktion ist sowohl auf SQL Server unter Windows als auch auf SQL Server unter Linux verfügbar.
Weitere Informationen finden Sie unter Hybridpufferpool
Statische Datenmaskierung (CTP 2.1)
Die Vorschau von SQL Server 2019 führt statische Datenmaskierung ein. Sie können die statische Datenmaskierung verwenden, um vertrauliche Daten in Kopien von SQL Server-Datenbanken zu bereinigen. Statische Datenmaskierung hilft dabei, eine bereinigte Kopie von Datenbanken zu erstellen, in der alle sensiblen Informationen so geändert wurden, dass die Kopie für Nicht-Produktionsbenutzer freigegeben werden kann. Statische Datenmaskierung kann für Entwicklung, Tests, Analysen und Geschäftsberichterstattung, Compliance, Fehlerbehebung und jedes andere Szenario verwendet werden, in dem bestimmte Daten nicht in andere Umgebungen kopiert werden können.
Die statische Datenmaskierung erfolgt auf Spaltenebene. Wählen Sie aus, welche Spalten maskiert werden sollen, und geben Sie für jede ausgewählte Spalte eine Maskierungsfunktion an. Statische Datenmaskierung kopiert die Datenbank und wendet dann die angegebenen Maskierungsfunktionen auf die Spalten an.
Statische Datenmaskierung vs. dynamische Datenmaskierung
Datenmaskierung ist der Vorgang, bei dem eine Maske auf eine Datenbank angewendet wird, um vertrauliche Informationen zu verbergen und sie durch neue Daten oder gelöschte Daten zu ersetzen. Microsoft bietet zwei Maskierungsoptionen, statische Datenmaskierung und dynamische Datenmaskierung. Die dynamische Datenmaskierung wurde in SQL Server 2016 (13.x) eingeführt. Die folgende Tabelle vergleicht diese beiden Lösungen:
Statische Datenmaskierung Dynamische Datenmaskierung
Geschieht auf einer Kopie der Datenbank

Originaldaten nicht abrufbar

Maskierung erfolgt auf Speicherebene

Alle Benutzer haben Zugriff auf dieselben maskierten Daten

Ausgerichtet auf einen kontinuierlichen teamweiten Zugriff geschieht auf der Originaldatenbank

Maskierung erfolgt on-the-fly zur Abfragezeit

Maske variiert je nach Benutzerberechtigung

Auf pünktlichen nutzerspezifischen Zugang ausgerichtet
Kompatibilitätsgrad der Datenbank (CTP 2.0)
Datenbank COMPATIBILITY_LEVEL 150 wurde hinzugefügt. Um für eine bestimmte Benutzerdatenbank zu aktivieren, führen Sie Folgendes aus:
SQL

Kopieren
ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = 150
Fortsetzbare Online-Indexerstellung (CTP 2.0)
Mit der fortsetzbaren Online-Indexerstellung kann ein Indexerstellungsvorgang angehalten und später an der Stelle fortgesetzt werden, an der der Vorgang angehalten wurde oder fehlgeschlagen ist, anstatt wieder von vorne zu beginnen.
Die wiederaufladbare Online-Indexerstellung unterstützt die folgenden Szenarien:
Setzen Sie einen Indexerstellungsvorgang nach einem fehlgeschlagenen Indexerstellungsvorgang fort, z.
Unterbrechen Sie eine laufende Indexerstellungsoperation und setzen Sie sie später fort, um vorübergehend Systemressourcen nach Bedarf freizugeben und diese Operation später fortzusetzen.
Erstellen Sie große Indizes, ohne so viel Protokollspeicherplatz zu belegen, und eine Transaktion mit langer Laufzeit, die andere Wartungsaktivitäten blockiert und das Abschneiden von Protokollen ermöglicht.
Im Falle eines Fehlers bei der Indexerstellung muss ohne diese Funktion eine Online-Indexerstellungsoperation erneut ausgeführt und die Operation von vorne gestartet werden.
Mit dieser Version erweitern wir die fortsetzbare Funktionalität, indem wir diese Funktion zur verfügbaren fortsetzbaren Online-Indexneuerstellung hinzufügen.
Darüber hinaus kann diese Funktion als Standard für eine bestimmte Datenbank festgelegt werden, indem die datenbankbezogene Standardeinstellung für Online- und fortsetzbare DDL-Operationen verwendet wird.
Weitere Informationen finden Sie unter Fortsetzbarer Online-Index erstellen.
Geclusterte Columnstore-Indizes online erstellen und neu erstellen (CTP 2.0)
Konvertieren Sie Row-Store-Tabellen in das Columnstore-Format. Das Erstellen von geclusterten Columnstore-Indizes (CCI) war in den früheren Versionen von SQL Server ein Offlineprozess, bei dem alle Änderungen während der Erstellung des CCI gestoppt werden mussten. Mit der Vorschau von SQL Server 2019 und Azure SQL-Datenbank können Sie CCI online erstellen oder neu erstellen. Die Arbeitslast wird nicht blockiert und alle an den zugrunde liegenden Daten vorgenommenen Änderungen werden der Ziel-Columnstore-Tabelle transparent hinzugefügt. Beispiele für neue Transact-SQL-Anweisungen, die verwendet werden können, sind:
SQL

Kopieren
CLUSTERED COLUMNSTORE INDEX ERSTELLEN cci
AN MIT (ONLINE = EIN)
SQL

Kopieren
ALTER INDEX cci
AN WIEDERAUFBAUEN MIT (ONLINE = EIN)
Immer verschlüsselt mit sicheren Enklaven (CTP 2.0)
Erweitert Always Encrypted mit direkter Verschlüsselung und umfangreichen Berechnungen. Die Erweiterungen kommen von der Ermöglichung von Berechnungen auf Klartextdaten innerhalb einer sicheren Enklave auf der Serverseite.
Zu den kryptografischen Operationen gehören die Verschlüsselung von Spalten und das Rotieren von Spaltenverschlüsselungsschlüsseln. Diese Vorgänge können jetzt mithilfe von Transact-SQL ausgeführt werden und erfordern nicht, dass Daten aus der Datenbank verschoben werden. Sichere Enklaven bieten Always Encrypted für eine breitere Palette von Szenarien, die beide der folgenden Anforderungen erfüllen:
Die Forderung, dass sensible Daten vor hochprivilegierten, aber nicht autorisierten Benutzern geschützt werden, einschließlich Datenbankadministratoren, Systemadministratoren, Cloud-Betreibern oder Malware.
Die Anforderung, dass umfangreiche Berechnungen für geschützte Daten innerhalb des Datenbanksystems unterstützt werden.
Weitere Informationen finden Sie unter Always Encrypted mit sicheren Enklaven.
Notiz
Always Encrypted with Secure Enclaves ist nur auf Windows-Betriebssystemen verfügbar.
Intelligente Anfrageverarbeitung (CTP 2.0)
Das Feedback zur Speicherzuweisung im Zeilenmodus erweitert das in SQL Server 2017 (14.x) eingeführte Feature für das Feedback zur Speicherzuweisung, indem die Größe der Speicherzuweisung für Operatoren im Batch- und Zeilenmodus angepasst wird. Wenn bei einer Bedingung für eine übermäßige Speicherzuweisung der gewährte Speicher mehr als das Doppelte des tatsächlich verwendeten Speichers beträgt, berechnet das Feedback zur Speicherzuweisung die Speicherzuweisung neu. Aufeinanderfolgende Ausführungen erfordern dann weniger Speicher. Bei einer Speicherzuweisung mit unzureichender Größe, die zu einem Überlauf auf die Festplatte führt, löst das Feedback zur Speicherzuweisung eine Neuberechnung der Speicherzuweisung aus. Aufeinanderfolgende Ausführungen erfordern dann mehr Speicher. Diese Funktion ist standardmäßig unter dem Datenbankkompatibilitätslevel 150 aktiviert.
Ungefährer COUNT DISTINCT gibt die ungefähre Anzahl eindeutiger Nicht-Null-Werte in einer Gruppe zurück. Diese Funktion ist für den Einsatz in Big-Data-Szenarien konzipiert. Diese Funktion ist für Abfragen optimiert, bei denen alle folgenden Bedingungen zutreffen:
Greift auf Datensätze von mindestens Millionen von Zeilen zu.
Aggregiert eine oder mehrere Spalten mit einer großen Anzahl unterschiedlicher Werte.
Reaktionsfähigkeit ist wichtiger als absolute Präzision.
APPROX_COUNT_DISTINCT gibt Ergebnisse zurück, die normalerweise innerhalb von 2 % der genauen Antwort liegen.
Und es gibt die ungefähre Antwort in einem kleinen Bruchteil der Zeit zurück, die für die genaue Antwort benötigt wird.
Der Batchmodus in Rowstore erfordert keinen Columnstore-Index mehr, um eine Abfrage im Batchmodus zu verarbeiten. Im Batch-Modus können Abfrageoperatoren an einer Reihe von Zeilen arbeiten, anstatt nur an einer Zeile gleichzeitig. Diese Funktion ist standardmäßig unter Datenbankkompatibilitätsgrad 150 aktiviert. Der Batchmodus verbessert die Geschwindigkeit von Abfragen, die auf Rowstore-Tabellen zugreifen, wenn alle folgenden Bedingungen zutreffen:
Die Abfrage verwendet analytische Operatoren wie Joins oder Aggregationsoperatoren.
Die Abfrage umfasst 100.000 oder mehr Zeilen.
Die Abfrage ist CPU-gebunden und nicht an Eingabe-/Ausgabedaten gebunden.
Die Erstellung und Verwendung eines Columnstore-Index hätte einen der folgenden Nachteile:
Würde der Abfrage zu viel Overhead hinzufügen.
Oder ist nicht machbar, weil Ihre Anwendung von einer Funktion abhängt, die noch nicht von Columnstore-Indizes unterstützt wird.
Die verzögerte Kompilierung von Tabellenvariablen verbessert die Planqualität und die Gesamtleistung für Abfragen, die auf Tabellenvariablen verweisen. Während der Optimierung und der anfänglichen Kompilierung gibt diese Funktion Kardinalitätsschätzungen weiter, die auf der tatsächlichen Zeilenanzahl der Tabellenvariablen basieren. Diese genauen Zeilenanzahlinformationen werden verwendet, um nachgelagerte Planvorgänge zu optimieren. Diese Funktion ist standardmäßig unter dem Datenbankkompatibilitätslevel 150 aktiviert.
Um intelligente Abfrageverarbeitungsfunktionen zu verwenden, setzen Sie die Datenbank COMPATIBILITY_LEVEL = 150.
Programmierbarkeitserweiterungen für die Programmiersprache Java (CTP 2.0)
Java-Spracherweiterung (Vorschau): Verwenden Sie die Java-Spracherweiterung, um Java-Code in SQL Server auszuführen. In der Vorschau von SQL Server 2019 wird diese Erweiterung installiert, wenn Sie Ihrer SQL Server-Instanz das Feature ‘Machine Learning Services (in-Datenbank)’ hinzufügen.
SQL Graph-Funktionen (CTP 2.3)
Verwenden von abgeleiteten Tabellen- oder Ansichtsaliasen in Diagrammübereinstimmungsabfragen (CTP 2.1) Diagrammabfragen auf der Vorschauvorschauunterstützung von SQL Server 2019 mithilfe von Ansichts- und abgeleiteten Tabellenaliasen in der MATCH-Syntax. Um diese Aliase in MATCH verwenden zu können, müssen die Ansichten und abgeleiteten Tabellen mit dem Operator UNION ALL entweder in einer Gruppe von Knoten- oder einer Gruppe von Kantentabellen erstellt werden. Die Knoten- oder Kantentabellen können Filter enthalten oder nicht. Die Möglichkeit, abgeleitete Tabellen- und Ansichtsaliase in MATCH-Abfragen zu verwenden, kann in Szenarien sehr nützlich sein, in denen Sie heterogene Entitäten oder heterogene Verbindungen zwischen zwei oder mehr Entitäten in Ihrem Diagramm abfragen möchten.
Die Match-Unterstützung in MERGE DML (CTP 2.0) ermöglicht es Ihnen, Diagrammbeziehungen in einer einzigen Anweisung anzugeben, anstatt in separaten INSERT-, UPDATE- oder DELETE-Anweisungen. Führen Sie Ihre aktuellen Diagrammdaten aus Knoten- oder Kantentabellen mit neuen Daten zusammen, indem Sie die MATCH-Prädikate in der MERGE-Anweisung verwenden. Diese Funktion ermöglicht UPSERT-Szenarien auf Edge-Tabellen. Benutzer können jetzt eine einzelne Merge-Anweisung verwenden, um eine neue Kante einzufügen oder eine vorhandene zwischen zwei Knoten zu aktualisieren.
Edge-Einschränkungen (CTP 2.0) werden für Edge-Tabellen in SQL Graph eingeführt. Edge-Tabellen können jeden Knoten mit jedem anderen Knoten in der Datenbank verbinden. Mit der Einführung von Kantenbeschränkungen können Sie nun einige Einschränkungen auf dieses Verhalten anwenden. Die neue Einschränkung CONNECTION kann verwendet werden, um den Knotentyp anzugeben, zu dem eine bestimmte Edge-Tabelle eine Verbindung im Schema herstellen darf.
(CTP 2.3) Um diese Funktion weiter zu erweitern, können Sie kaskadierte Löschaktionen für eine Randbedingung definieren. Sie können die Aktionen definieren, die die Datenbank-Engine ausführt, wenn ein Benutzer den/die Knoten löscht, die/die ein bestimmter Edge verbindet.
Datenbankbezogene Standardeinstellung für Online- und fortsetzbare DDL-Vorgänge (CTP 2.0)
Datenbankbereichsbezogene Standardeinstellung für Online- und fortsetzbare DDL-Operationen ermöglicht eine Standardverhaltenseinstellung für ONLINE- und RESUMABLE-Indexoperationen auf Datenbankebene, anstatt diese Optionen für jede einzelne Index-DDL-Anweisung wie Indexerstellung oder -neuerstellung zu definieren.
Legen Sie diese Standardwerte mit den datenbankbezogenen Konfigurationsoptionen ELEVATE_ONLINE und ELEVATE_RESUMABLE fest. Beide Optionen bewirken, dass die Engine unterstützte Operationen automatisch heraufsetzt, um online zu indizieren oder die Ausführung fortzusetzen. Mit diesen Optionen können Sie die folgenden Verhaltensweisen aktivieren:
Die Option FAIL_UNSUPPORTED lässt alle Indexoperationen online oder fortsetzbar zu und schlägt Indexoperationen fehl, die für online oder fortsetzbar nicht unterstützt werden.
Die Option WHEN_SUPPPORTED ermöglicht unterstützte Operationen online oder fortsetzbar und die Ausführung von nicht unterstützten Indexoperationen offline oder nicht fortsetzbar.
Die Option OFF ermöglicht das aktuelle Verhalten der Ausführung aller Indexoperationen offline und nicht fortsetzbar, sofern nicht ausdrücklich in der DDL-Anweisung angegeben.
Um die Standardeinstellung zu überschreiben, schließen Sie die Option ONLINE oder RESUMABLE in die Befehle zur Indexerstellung und -neuerstellung ein.
Ohne diese Funktion müssen Sie die Online- und Fortsetzbaren Optionen direkt in der Index-DDL-Anweisung angeben, wie z. B. Indexerstellung und -neuerstellung.
Weitere Informationen zu fortsetzbaren Indexvorgängen finden Sie unter Fortsetzbarer Online-Indexerstellung.
Always On-Verfügbarkeitsgruppen – mehr synchrone Replikate (CTP 2.0)
Bis zu fünf synchrone Replikate: Die Vorschau von SQL Server 2019 erhöht die maximale Anzahl synchroner Replikate auf 5, von 3 in SQL Server 2017 (14.x). Sie können diese Gruppe von fünf Replikaten so konfigurieren, dass ein automatisches Failover innerhalb der Gruppe erfolgt. Es gibt ein primäres Replikat sowie vier synchrone sekundäre Replikate.
Verbindungsumleitung vom sekundären zum primären Replikat: Ermöglicht das Umleiten von Clientanwendungsverbindungen zum primären Replikat, unabhängig vom Zielserver, der in der Verbindungszeichenfolge angegeben ist. Diese Funktion ermöglicht eine Verbindungsumleitung ohne einen Listener. Verwenden Sie in den folgenden Fällen die Umleitung von Sekundär-zu-Primär-Replikat-Verbindungen:
Die Cluster-Technologie bietet keine Listener-Funktion.
Eine Konfiguration mit mehreren Subnetzen, bei der die Umleitung komplex wird.
Lesen Sie Scale-Out- oder Disaster-Recovery-Szenarien, in denen der Clustertyp NONE ist.
Weitere Informationen finden Sie unter Umleitung von Lese-/Schreibverbindungen von sekundärem zu primärem Replikat (Always On Availability Groups).
Datenermittlung und -klassifizierung (CTP 2.0)
Die Datenermittlung und -klassifizierung bietet erweiterte Funktionen, die nativ in SQL Server integriert sind. Die Klassifizierung und Kennzeichnung Ihrer sensibelsten Daten bietet folgende Vorteile:
Hilft bei der Einhaltung von Datenschutzstandards und gesetzlichen Compliance-Anforderungen.
Unterstützt Sicherheitsszenarien wie Überwachung (Audit) und Warnungen bei anormalem Zugriff auf sensible Daten.
Erleichtert die Identifizierung von sensiblen Daten im Unternehmen, sodass Administratoren die richtigen Schritte zur Sicherung der Datenbank unternehmen können.
Weitere Informationen finden Sie unter SQL-Datenermittlung und -Klassifizierung.
Die Überwachung wurde außerdem um ein neues Feld namens data_sensitivity_information im Überwachungsprotokoll erweitert, das die Sensitivitätsklassifizierungen (Bezeichnungen) der tatsächlichen Daten protokolliert, die von der Abfrage zurückgegeben wurden. Details und Beispiele finden Sie unter Hinzufügen von Sensitivitätsklassifizierung.
Notiz
Es gibt keine Änderungen in Bezug auf die Aktivierung von Audits. Den Überwachungsdatensätzen wurde ein neues Feld hinzugefügt, data_sensitivity_information, das die Sensitivitätsklassifizierungen (Bezeichnungen) der tatsächlichen Daten protokolliert, die von der Abfrage zurückgegeben wurden. Siehe Zugriff auf sensible Daten überwachen.
Erweiterte Unterstützung für persistente Speichergeräte (CTP 2.0)
Jede SQL Server-Datei, die auf einem persistenten Speichergerät platziert wird, kann jetzt im aufgeklärten Modus betrieben werden. SQL Server greift direkt auf das Gerät zu und umgeht den Speicherstapel des Betriebssystems mithilfe effizienter Memcpy-Operationen. Dieser Modus verbessert die Leistung, da er eine Eingabe/Ausgabe mit geringer Latenz für solche Geräte ermöglicht. – Beispiele für SQL Server-Dateien sind: – Datenbankdateien – Transaktionsprotokolldateien – In-Memory-OLTP-Prüfpunktdateien – Persistenter Speicher wird auch als Speicherklassenspeicher bezeichnet. – Persistenter Speicher wird auf einigen Nicht-Microsoft-Websites gelegentlich informell als pmem bezeichnet.
Notiz
Für diese Vorschauversion ist die Aufklärung von Dateien auf persistenten Speichergeräten nur unter Linux verfügbar. SQL Server unter Windows unterstützt persistente Speichergeräte ab SQL Server 2016 (13.x).
Unterstützung für Columnstore-Statistiken in DBCC CLONEDATABASE (CTP 2.0)
DBCC CLONEDATABASE erstellt eine reine Schemakopie einer Datenbank, die alle erforderlichen Elemente enthält, um Probleme mit der Abfrageleistung zu beheben, ohne die Daten zu kopieren. In früheren Versionen von SQL Server kopierte der Befehl nicht die Statistiken, die für die genaue Fehlerbehebung von Columnstore-Indexabfragen erforderlich sind, und es waren manuelle Schritte erforderlich, um diese Informationen zu erfassen. In der SQL Server 2019-Vorschau erfasst DBCC CLONEDATABASE jetzt automatisch die Statistikblobs für Columnstore-Indizes, sodass keine manuellen Schritte erforderlich sind.
Neue Optionen zu sp_estimate_data_compression_savings (CTP 2.0) hinzugefügt
sp_estimate_data_compression_savings gibt die aktuelle Größe des angeforderten Objekts zurück und schätzt die Objektgröße für den angeforderten Komprimierungszustand. Derzeit unterstützt dieses Verfahren drei Optionen: NONE, ROW und PAGE. Die Vorschau von SQL Server 2019 führt zwei neue Optionen ein: COLUMNSTORE und COLUMNSTORE_ARCHIVE.Mit diesen neuen Optionen können Sie die Speicherplatzeinsparungen abschätzen, wenn ein Columnstore-Index für die Tabelle entweder mit der Standard- oder Archiv-Columnstore-Komprimierung erstellt wird.
SQL Server Machine Learning Services-Failovercluster und partitionsbasierte Modellierung (CTP 2.0)
Partitionsbasierte Modellierung: Verarbeiten Sie externe Skripts pro Partition Ihrer Daten unter Verwendung der neuen Parameter, die zu sp_execute_external_script hinzugefügt wurden. Diese Funktionalität unterstützt das Training vieler kleiner Modelle (ein Modell pro Datenpartition) anstelle eines großen Modells.
Windows Server-Failovercluster: Konfigurieren Sie Hochverfügbarkeit für Machine Learning Services auf einem Windows Server-Failovercluster.
Ausführliche Informationen finden Sie unter Neuerungen in SQL Server Machine Learning Services.
Standardmäßig aktivierte schlanke Infrastruktur zur Abfrageprofilerstellung (CTP 2.0)
Die Lightweight Query Profiling Infrastructure (LWP) stellt Abfrageleistungsdaten effizienter bereit als Standard-Profiling-Mechanismen. Lightweight Profiling ist jetzt standardmäßig aktiviert. Es wurde in SQL Server 2016 (13.x) SP1 eingeführt. Lightweight Profiling bietet einen Erfassungsmechanismus für Abfrageausführungsstatistiken mit einem erwarteten Overhead von 2 % CPU, verglichen mit einem Overhead von bis zu 75 % CPU für den Standard-Abfrageprofiling-Mechanismus. In früheren Versionen war es standardmäßig AUS. Datenbankadministratoren könnten es mit dem Ablaufverfolgungsflag 7412 aktivieren.
Weitere Informationen zur einfachen Profilerstellung finden Sie unter Infrastruktur für die Abfrageprofilerstellung.
CTP 2.3 Eine neue datenbankbezogene Konfiguration LIGHTWEIGHT_QUERY_PROFILING wird eingeführt, um die schlanke Infrastruktur für die Abfrageprofilerstellung zu aktivieren oder zu deaktivieren.
Neue PolyBase-Verbinder
Neue Connectors für SQL Server, Oracle, Teradata und MongoDB: Die Vorschau von SQL Server 2019 führt neue Connectors für externe Daten für SQL Server, Oracle, Teradata und MongoDB ein.
Neue Systemfunktion sys.dm_db_page_info gibt Seiteninformationen zurück (CTP 2.0)
sys.dm_db_page_info(database_id, file_id, page_id, mode) gibt Informationen zu einer Seite in einer Datenbank zurück. Die Funktion gibt eine Zeile zurück, die die Header-Informationen der Seite enthält, einschließlich der object_id, index_id und partition_id. Diese Funktion ersetzt in den meisten Fällen die Verwendung von DBCC PAGE.
Um die Fehlerbehebung bei seitenbezogenen Wartezeiten zu erleichtern, wurde auch eine neue Spalte namens page_resource zu sys.dm_exec_requests und sys.sysprocesses hinzugefügt. Mit dieser neuen Spalte können Sie sys.dm_db_page_info über eine weitere neue Systemfunktion – sys.fn_PageResCracker mit diesen Ansichten verknüpfen. Sehen Sie sich das folgende Skript als Beispiel an:
SQL

Kopieren
SELECT page_info.*
FROM sys.dm_exec_requests AS d
CROSS APPLY sys.fn_PageResCracker(d.page_resource) AS r
CROSS APPLY sys.dm_db_page_info(r.db_id, r.file_id, r.page_id,’DETAILED’)
AS page_info
SQL-Server unter Linux

Always On-Verfügbarkeitsgruppe für Docker-Container mit Kubernetes (CTP 2.2): Kubernetes kann Container mit SQL Server-Instanzen orchestrieren, um einen hochverfügbaren Satz von Datenbanken mit SQL Server Always On-Verfügbarkeitsgruppen bereitzustellen. Ein Kubernetes-Operator stellt ein StatefulSet bereit, das einen Container mit mssql-server-Container und einen Integritätsmonitor umfasst.
Neue Container-Registry (CTP 2.1): Alle Container-Images für die Vorschau von SQL Server 2019 sowie SQL Server 2017 (14.x) befinden sich jetzt in der Microsoft Container Registry. Microsoft Container Registry ist die offizielle Container-Registry für die Verteilung von Microsoft-Produktcontainern. Außerdem werden jetzt zertifizierte RHEL-basierte Images veröffentlicht.
Microsoft Container Registry: mcr.microsoft.com/mssql/server:vNext-CTP2.0
Zertifizierte RHEL-basierte Container-Images: mcr.microsoft.com/mssql/rhel/server:vNext-CTP2.0
Replikationsunterstützung (CTP 2.0): Die Vorschau von SQL Server 2019 unterstützt die SQL Server-Replikation unter Linux. Eine virtuelle Linux-Maschine mit SQL Agent kann ein Herausgeber, Verteiler oder Abonnent sein.
Erstellen Sie die folgenden Arten von Veröffentlichungen:
Transaktional
Schnappschuss
Verschmelzen
Konfigurieren Sie die Replikation SQL Server Management Studio oder verwenden Sie gespeicherte Replikationsprozeduren.
Unterstützung für den Microsoft Distributed Transaction Coordinator (MSDTC) (CTP 2.0): Die SQL Server 2019-Vorschau unter Linux unterstützt den Microsoft Distributed Transaction Coordinator (MSDTC). Weitere Informationen finden Sie unter Konfigurieren von MSDTC unter Linux.
OpenLDAP-Unterstützung für AD-Drittanbieter (CTP 2.0): Die SQL Server 2019-Vorschau unter Linux unterstützt OpenLDAP, wodurch Drittanbieter Active Directory beitreten können.
Machine Learning unter Linux (CTP 2.0): SQL Server 2019-Vorschau Machine Learning Services (Datenbankintern) wird jetzt unter Linux unterstützt. Die Unterstützung umfasst die gespeicherte Prozedur sp_execute_external_script. Anweisungen zum Installieren von Machine Learning Services unter Linux finden Sie unter Installieren von SQL Server 2019-Vorschau für Machine Learning Services R und Python-Unterstützung unter Linux.
Stammdatendienste

Silverlight-Steuerelemente durch HTML (CTP 2.0) ersetzt: Das Master Data Services (MDS)-Portal hängt nicht mehr von Silverlight ab. Alle früheren Silverlight-Komponenten wurden durch HTML-Steuerelemente ersetzt.
Sicherheit

Zertifikatsverwaltung im SQL Server Configuration Manager (CTP 2.0): SSL/TLS-Zertifikate werden häufig verwendet, um den Zugriff auf SQL Server-Instanzen zu sichern. Die Zertifikatsverwaltung ist jetzt in den SQL Server-Konfigurations-Manager integriert, wodurch häufige Aufgaben vereinfacht werden, wie z.
Anzeigen und Überprüfen von Zertifikaten, die in einer SQL Server-Instanz installiert sind.
Zertifikate kurz vor Ablauf anzeigen.
Stellen Sie Zertifikate auf allen Computern bereit, die an AlwaysOn-Verfügbarkeitsgruppen teilnehmen (von dem Knoten, der das primäre Replikat enthält).
Stellen Sie Zertifikate auf Computern bereit, die an einer Failoverclusterinstanz teilnehmen (vom aktiven Knoten).
Notiz
Der Benutzer muss auf allen Clusterknoten über Administratorberechtigungen verfügen.
Werkzeuge

Azure Data Studio: Azure Data Studio, das zuvor unter dem Vorschaunamen SQL Operations Studio veröffentlicht wurde, ist ein schlankes, modernes, plattformübergreifendes Open-Source-Desktoptool für die häufigsten Aufgaben in der Datenentwicklung und -verwaltung. Mit Azure Data Studio und der SQL Server 2019 Preview Preview-Erweiterung können Sie eine Verbindung zu SQL Server lokal und in der Cloud unter Windows, macOS und Linux herstellen. Azure Data Studio ermöglicht Ihnen Folgendes:
AAD wird jetzt unterstützt. (CTP 2.3)
Die Benutzeroberfläche der Notebookansicht wurde in Azure Data Studio Core verschoben. (CTP 2.3)
Neuer Assistent zum Erstellen externer Datenquellen aus Hadoop Distributed File System (HDFS) zu SQL Server Big Data Cluster hinzugefügt. (CTP 2.3)
Verbesserte Benutzeroberfläche des Notebook-Viewers. (CTP 2.3)
Neue Notebook-APIs hinzugefügt. (CTP 2.3)
Der Befehl "Reinstall Notebook Dependencies" wurde hinzugefügt, um bei Python-Paketaktualisierungen zu helfen. (CTP 2.3)
Verbinden und verwalten Sie die Big-Data-Cluster von SQL Server 2019 in der Vorschau. (CTP 2.1)
Bearbeiten und führen Sie Abfragen in einer modernen Entwicklungsumgebung mit blitzschnellem Intellisense, Code-Snippets und Integration der Quellcodeverwaltung aus. (CTP 2.0)
Visualisieren Sie Daten schnell mit der integrierten Diagrammerstellung Ihrer Ergebnismengen. (CTP 2.0)
Erstellen Sie benutzerdefinierte Dashboards für Ihre Server und Datenbanken mit anpassbaren Widgets. (CTP 2.0)
Verwalten Sie Ihre Umgebung ganz einfach mit dem integrierten Terminal. (CTP 2.0)
Analysieren Sie Daten in einem integrierten Notebook-Erlebnis, das auf Jupyter basiert. (CTP 2.0)
Verbessern Sie Ihre Erfahrung mit benutzerdefinierten Designs und Erweiterungen. (CTP 2.0)
Und erkunden Sie Ihre Azure-Ressourcen mit einem integrierten Abonnement- und Ressourcenbrowser. (CTP 2.0)
Unterstützt Szenarien mit SQL Server Big Data-Clustern. (CTP 2.0)
Trinkgeld
Die neuesten Verbesserungen an Azure Data Studio finden Sie in den Versionshinweisen zu Azure Data Studio.
SQL Server Management Studio (SSMS) 18.0 (Vorschau): Unterstützt die Vorschau von SQL Server 2019.
Starten Sie Azure Data Studio über SSMS. (CTP 2.3)
Unterstützung für Always Encrypted mit sicheren Enklaven. (CTP 2.0)
Kleinere Downloadgröße. (CTP 2.0)
Jetzt basierend auf der isolierten Shell von Visual Studio 2017. (CTP 2.0)
Eine vollständige Liste finden Sie im SSMS-Changelog. (CTP 2.0)
SQL Server PowerShell-Modul: Das SqlServer PowerShell-Modul ermöglicht SQL Server-Entwicklern, -Administratoren und BI-Experten die Automatisierung der Datenbankbereitstellung und Serververwaltung.
Upgrade von 21.0 auf 21.1, um SMO v150 zu unterstützen.
Der SQL Server-Anbieter (SQLRegistration) wurde aktualisiert, um AS/IS/RS-Gruppen anzuzeigen.
Problem im Cmdlet New-SqlAvailabilityGroup beim Targeting von SQL Server 2014 behoben.
Parameter –LoadBalancedReadOnlyRoutingList zu Set-SqlAvailabilityReplica und New-SqlAvailabilityReplica hinzugefügt.
Aktualisiertes AnalysisService-Cmdlet zur Verwendung zwischengespeicherter Anmeldetoken von Login-AzureAsAccount für Azure Analysis Services.
SQL Server Analysis Services (SSAS)

Viele-zu-Viele-Beziehungen in tabellarischen Modellen (CTP 2.4)
Diese Funktion ermöglicht Viele-zu-Viele-Beziehungen zwischen Tabellen, bei denen beide Spalten nicht eindeutig sind. Eine Beziehung zwischen einer Dimension und einer Faktentabelle kann mit einer höheren Granularität als der Schlüsselspalte der Dimension definiert werden. Dadurch wird die Normalisierung von Dimensionstabellen vermieden und die Benutzerfreundlichkeit kann verbessert werden, da das resultierende Modell eine geringere Anzahl von Tabellen mit logisch gruppierten Spalten enthält. Für dieses CTP 2.4-Release sind viele-zu-viele-Beziehungen reine Engine-Funktionen.
Viele-zu-viele-Beziehungen erfordern Modelle mit dem Kompatibilitätsgrad 1470, der derzeit nur in der SQL Server 2019-Vorschau CTP 2.3 und höher unterstützt wird. Für dieses CTP 2.4-Release können Viele-zu-Viele-Beziehungen erstellt werden, indem die Tabular Object Model (TOM) API, die Tabular Model Scripting Language (TMSL) und das Open-Source-Tool "Tabellar Editor" verwendet werden. Die Unterstützung in SQL Server Data Tools (SSDT) ​​wird in einer zukünftigen Version enthalten sein, ebenso wie die Dokumentation. Weitere Informationen zu diesem und anderen CTP-Feature-Releases werden im Analysis Services-Blog bereitgestellt.
Speichereinstellungen für Ressourcen-Governance (CTP 2.4)
Die hier beschriebenen Speichereinstellungen sind bereits in Azure Analysis Services verfügbar. Ab CTP 2.4 werden sie nun auch von SQL Server 2019 Preview Analysis Services unterstützt.
MemoryQueryMemoryLimit – Diese Speichereigenschaft kann verwendet werden, um Speicherspools zu begrenzen, die von an das Modell gesendeten DAX-Abfragen erstellt werden.
DbpropMsmdRequestMemoryLimit – Diese XMLA-Eigenschaft kann verwendet werden, um den MemoryQueryMemoryLimit-Servereigenschaftswert für eine Verbindung zu überschreiben.
OLAPQueryRowsetSerializationLimit – Diese Servereigenschaft begrenzt die Anzahl der Zeilen, die in einem Rowset zurückgegeben werden, und schützt die Serverressourcen vor umfangreicher Datenexportnutzung. Diese Eigenschaft gilt für beide gilt sowohl für DAX- als auch für MDX-Abfragen.
Diese Eigenschaften können mithilfe der neuesten Version von SQL Server Management Studio (SSMS) festgelegt werden. Weitere Informationen zu dieser Funktion werden im Analysis Services-Blog bereitgestellt.
Berechnungsgruppen in tabellarischen Modellen (CTP 2.3)
Berechnungsgruppen behandeln ein häufiges Problem in komplexen Modellen, bei denen es zu einer Vielzahl von Maßnahmen kommen kann, die dieselben Berechnungen verwenden, wie z. B. Zeitintelligenz. Berechnungsgruppen werden in Berichtskunden als Tabelle mit einer einzigen Spalte angezeigt. Jeder Wert in der Spalte stellt eine wiederverwendbare Berechnung oder ein Berechnungselement dar, das auf alle Kennzahlen angewendet werden kann.
Eine Berechnungsgruppe kann eine beliebige Anzahl von Berechnungselementen enthalten. Jedes Berechnungselement wird durch einen DAX-Ausdruck definiert. Drei neue DAX-Funktionen werden eingeführt, um mit Berechnungsgruppen zu arbeiten:
SELECTEDMEASURE() – Gibt einen Verweis auf die aktuell im Kontext befindliche Kennzahl zurück.
SELECTEDMEASURENAME() – Gibt einen String zurück, der den Namen der aktuell im Kontext befindlichen Kennzahl enthält.
ISSELECTEDMEASURE(M1, M2, …) – Gibt einen Booleschen Wert zurück, der angibt, ob die aktuell im Kontext befindliche Kennzahl eine der als Argument angegebenen ist.
Neben neuen DAX-Funktionen werden zwei neue Dynamic Management Views eingeführt:
TMSCHEMA_CALCULATION_GROUPS
TMSCHEMA_CALCULATION_ITEMS
Einschränkungen in dieser Version:
Die ALLSELECTED DAX-Funktion wird noch nicht unterstützt.
Die in der Berechnungsgruppentabelle definierte Zeilenebenensicherheit wird noch nicht unterstützt.
Die in der Berechnungsgruppentabelle definierte Objektebenensicherheit wird noch nicht unterstützt.
DetailsRows-Ausdrücke, die sich auf Berechnungselemente beziehen, werden noch nicht unterstützt.
MDX wird noch nicht unterstützt.
Bekannte Probleme in dieser Version:
Das Vorhandensein von Berechnungsgruppen in einem Modell kann dazu führen, dass Kennzahlen unterschiedliche Datentypen zurückgeben, was zu Aktualisierungsfehlern für berechnete Spalten und Tabellen führen kann, die auf Kennzahlen verweisen.
Kompatibilitätslevel
Berechnungsgruppen erfordern Modelle mit dem Kompatibilitätsgrad 1470, der derzeit nur in der SQL Server 2019-Vorschau CTP 2.3 und höher unterstützt wird. Derzeit können Berechnungsgruppen mit der Tabular Object Model (TOM) API, der Tabular Model Scripting Language (TMSL) und dem Open-Source-Tool "Tabellar Editor" erstellt werden. Die Unterstützung in SQL Server Data Tools (SSDT) ​​wird in einer zukünftigen Version enthalten sein, ebenso wie die Dokumentation. Weitere Informationen zu diesem und anderen CTP-Feature-Releases werden im Analysis Services-Blog bereitgestellt.
Siehe auch
SqlServer PowerShell-Modul
SQL Server PowerShell-Dokumentation
Nächste Schritte
Versionshinweise zur Vorschauversion von SQL Server 2019.
Vorschau auf Microsoft SQL Server 2019: Technisches Whitepaper
Veröffentlicht im September 2018. Gilt für Microsoft SQL Server 2019 Preview CTP 2.0 für Windows-, Linux- und Docker-Container.
info_tip Holen Sie sich Hilfe
UserVoice – Vorschlag zur Verbesserung von SQL Server?
Einrichtung und Upgrade – MSDN-Forum
SQL Server-Datentools – MSDN-Forum
Transact-SQL – MSDN-Forum
SQL Server-Sicherheit – MSDN-Forum
DBA Stack Exchange (Tag sql-server) – SQL Server-Fragen stellen
Stack Overflow (tag sql-server) – hat auch einige Antworten zur SQL-Entwicklung
Reddit – allgemeine Diskussion über SQL Server
Microsoft SQL Server-Lizenzbedingungen und -informationen
Support-Optionen für Geschäftsanwender


Dialog Daten importieren/exportieren¶

Verwenden Sie die Daten importieren/exportieren Dialogfeld, um Daten aus einer Tabelle in eine Datei zu kopieren oder Daten aus einer Datei in eine Tabelle zu kopieren.

Das Daten importieren/exportieren dialog organisiert den Import/Export von Daten über die Optionen und Säulen Registerkarten.

Verwenden Sie die Felder im Optionen Registerkarte, um Import- und Exporteinstellungen festzulegen:

Beweg das Import Export wechsel zu dem Importieren Position, um anzugeben, dass der Server Daten aus einer Datei in eine Tabelle importieren soll. Die Standardeinstellung ist Export.

Verwenden Sie die Felder im Dateiinformation Feld, um Informationen zur Quell- oder Zieldatei anzugeben:

  • Geben Sie den Namen der Quell- oder Zieldatei in das Dateinamen Feld. Wählen Sie optional die Browser Symbol (Ellipse) rechts, um in ein Verzeichnis zu navigieren und eine Datei auszuwählen.

  • Verwenden Sie das Dropdown-Listenfeld im Format Feld, um den Dateityp anzugeben. Auswählen:

    • binär für eine .bin-Datei.

    • csv für eine .csv-Datei.

    • Text für eine .txt-Datei.

    Verwenden Sie die Felder im Sonstig Feldfeld, um zusätzliche Informationen anzugeben:

    • Beweg das OID schalten Sie auf die Jawohl Position, um die OID Säule. Das OID ist ein vom System zugewiesener Wert, der nicht geändert werden darf. Die Standardeinstellung ist Nein.

    • Beweg das Header schalten Sie auf die Jawohl Position, um den Tabellenkopf in die Datenzeilen einzubeziehen. Wenn Sie den Tabellenkopf einschließen, enthält die erste Zeile der Datei die Spaltennamen.

    • Wenn Sie Daten exportieren, geben Sie das Trennzeichen an, das die Spalten innerhalb der Zieldatei im Trennzeichen Feld. Das Trennzeichen kann ein Doppelpunkt, ein Semikolon, ein senkrechter Strich oder ein Tabulator sein.

    • Geben Sie ein Anführungszeichen an, das im verwendet wird Zitieren Feld. Anführungszeichen können nur auf Zeichenfolgenspalten angewendet werden (d. h. numerische Spalten werden nicht in Anführungszeichen gesetzt) ​​oder alle Spalten unabhängig vom Datentyp. Das für Anführungszeichen verwendete Zeichen kann ein einfaches Anführungszeichen oder ein doppeltes Anführungszeichen sein.

    • Geben Sie ein Zeichen an, das vor einem Datenzeichen erscheinen soll, das mit dem übereinstimmt ZITIEREN Wert in der Flucht Feld.

    Drücke den Säulen Registerkarte, um fortzufahren.

    Verwenden Sie die Felder im Säulen Registerkarte, um die Spalten auszuwählen, die importiert oder exportiert werden sollen:

    Klicken Sie in das Spalten zum Exportieren/Importieren Feld, um die Auswahl einer oder mehrerer Spalten aus dem Dropdown-Listenfeld aufzuheben. Um eine Auswahl zu löschen, klicken Sie auf das x links neben dem Spaltennamen. Klicken Sie auf eine leere Stelle im Feld, um auf die Dropdown-Liste zuzugreifen.

    Verwenden Sie die NULL-Strings -Feld, um eine Zeichenfolge anzugeben, die einen Nullwert in der Quell- oder Zieldatei darstellt.

    Wenn aktiviert, klicken Sie in das Nicht null Spalten Feld, um eine oder mehrere Spalten auszuwählen, die nicht auf einen NULL-Wert geprüft werden. Um eine Spalte zu löschen, klicken Sie auf das x links neben dem Spaltennamen.

    Nach Abschluss der Daten importieren/exportieren Dialog, klicken Sie auf das OK Schaltfläche, um den Import oder Export durchzuführen. pgAdmin informiert Sie, wenn der Hintergrundprozess abgeschlossen ist:

    Verwenden Sie die Prozess stoppen Schaltfläche, um den Import/Export-Vorgang zu stoppen.

    Verwenden Sie die Hier klicken für Details Link in der Benachrichtigung zum Öffnen der Prozessbeobachter und überprüfen Sie detaillierte Informationen zur Ausführung des Befehls, der den Import oder Export durchgeführt hat:

    Wenn du läufst pgAdmin In Servermodus Sie können auf das Symbol im Prozessüberwachungsfenster klicken, um den Dateispeicherort im Speichermanager zu öffnen. Sie können den Storage Manager verwenden, um die Sicherungsdatei auf den Client-Rechner herunterzuladen.


    UTF-8-codierte Shapefiles in SQL Server importieren? - Geografisches Informationssystem

    Folgendes habe ich geändert:
    1. Die Dateien der Volkszählung 2012 verwendet
    2. Erstellt einen Batch-Prozess zum Konvertieren und Laden aller 3000+ Dateien in eine große SQL-Tabelle.
    3. Shp2XML modifiziert, um die ungültigen XML-Zeichen zu "korrigieren". Wie sich herausstellte gibt es nur 5 davon
    die dazu führen, dass einige XML-Dateien unlesbar sind. Hier ist eine Liste (in Hex) mit den entsprechenden
    Übersetzung, die ich hinzugefügt habe:
    F1 -> 6E
    E9 -> 65
    E1 -> 61
    FA -> 75
    D3 -> 4F
    Alle Fälle, die ich stichprobenartig überprüft habe, waren übliche Zeichen im Feld Vollständiger Name (Straße).
    Akzente, wie das 'n' mit einer Tilde darüber. Ich denke, diese spielen nicht gut mit XML.

    4. Die Ladeprozedur wurde geändert, um Fälle zu beheben, in denen nicht numerische Zeichen im lfromadd enthalten waren.
    ltoadd-, rfromadd- und rtoadd-Felder, um die verdächtigen Zeichen zu entfernen. Die Charaktere, die ich
    entfernt wurden 'A','B','C','D' und 'E'. (Ich habe eigentlich nur 'D' und 'E' in den Daten gesehen, aber ich habe mich entschieden
    um A bis E zu scannen und zu korrigieren).
    5. Modifizierte die Load-Prozedur, um lfromadd, ltoadd, rfromadd und rtoadd auf 9 Stellen zu kürzen. (Ein paar
    Fälle, die mir aufgefallen sind, hatten Fehler, die die Zahl innerhalb des Feldes zu wiederholen schienen, wodurch die
    Zahl zu groß, um als Ganzzahl zu passen.

    Mit den Schritten 3,4 und 5 konnte ich 100 % der Dateien importieren, außer USVI, Guam und PR, die ich für mein Projekt nicht benötigte.

    6. Zusätzliche Spalten für Zip und State zur GeoState-Tabelle für Indizierungszwecke hinzugefügt und geändert
    das Ladeprogramm, um den Dateinamen zu verwenden, um den Zustand zu dekodieren und ihn während des Schreibens in den Datensatz zu schreiben
    alle anderen Infos.

    7. Erstellte Indizes für Zip + Street und State + Street. Dadurch hat sich die Datenbankgröße in etwa verdoppelt,
    aber was sind heutzutage ein paar GB?

    8. Modifizierte die fnParseAddr-Funktion, um eine 3-stufige Suche durchzuführen, um die Indizes zu nutzen
    ohne an Genauigkeit zu verlieren. Zuerst habe ich die Postleitzahl und die Straße in die Where-Klausel eingefügt, damit es
    würde den Zip/Street-Index verwenden. Wenn das keine Übereinstimmungen zurückgibt, würde es ein anderes tun
    Suche mit Bundesland und Straße in der Where-Klausel. Wenn das keine Zeilen zurückgibt, dann wäre es
    auf die Straße zurückgreifen. Ich habe das gemacht, weil ich einen dramatischen Zeitunterschied bemerkt habe
    verwendet, um eine Straße mit einem gebräuchlichen Namen (z. B. "Main St") im Vergleich zu einer Straße mit einem weniger gebräuchlichen Namen zu geokodieren
    (d. h. "Wakeby Rd"). Natürlich ist es langsamer, wenn es auf die Suche der dritten Ebene zurückgreifen muss. Aber
    ein überwältigender Prozentsatz wird von der ersten (zip/street) Suche verarbeitet, die es wettgemacht hat
    viele, viele Male.

    Die Schritte 6,7 und 8 haben die Gesamtgeschwindigkeit der Geokodierung ungefähr vervierfacht.

    Sehr cool. Ich habe herausgefunden, dass die meisten Adressen die Postleitzahl, die Stadt, die Richtung oder den Typ (oder alles oben) durcheinander bringen. Also dachte ich, dass nur ein primärer Index nach Straßennamen ausreichen würde, aber vielleicht sollte ich ihn noch einmal besuchen. Denken Sie immer noch, dass in allen von Ihnen erwähnten Indizes die Straße an erster Stelle stehen sollte.

    Außerdem hast du mit 3000 GEO-Dateien so ziemlich die ganzen USA, oder? Wie viele Datensätze sind es?

    Ihre Arbeit hilft mir auf jeden Fall sehr. Danke noch einmal. Ich muss meinen Server überprüfen, wenn ich zurückkomme, um Ihnen die Gesamtzahl der Datensätze mitzuteilen. Aber ich glaube, es waren ungefähr 25 Millionen.

    Ich sehe mehrere c-, cpp- und h-Dateien
    dbfopen.c
    shpopen.c
    Shp2xml.cpp
    stdafx.cpp
    shapefil.h
    stdafx.h
    zielver.h

    Ich lade VS C++ Express herunter, um Ihr Projekt zu öffnen, aber es sagt, dass es von einer früheren Version erstellt wurde, und bitte mich, es zu konvertieren. Wird es in C++ VS Express funktionieren?

    Ich habe die folgende Fehlermeldung erhalten, nachdem ich sie in VS C++ 2010 konvertiert und auf F5 geklickt habe

    Ich habe ein neues Win32-Konsolenanwendungsprojekt erstellt, alle Codes von Shp2Xml kopiert und die 3 Dateien in das Projekt eingefügt. Ich habe die folgende Fehlermeldung erhalten, als ich versucht habe, das Projekt zu erstellen. Hast du eine Ahnung was los ist?



    dbf-Datei anzeigen, dbf-Datei bearbeiten und dbf-Dateien drucken!
    DBF Converter & DBF File Viewer ist ein kompaktes, aber leistungsstarkes Tool zum Anzeigen, Bearbeiten und Drucken von Datenbanken im DBF-Format. DBF Converter & DBF Viewer verwendet eigene Datenbankzugriffstools und benötigt keine externen Treiber für die Verbindung zu Datenbanken (wie ODBC oder BDE) oder zusätzlichen Bibliotheken (.OCX, .DLL). Das Programm ermöglicht Ihnen das Hinzufügen, Löschen, Abrufen, Sortieren, Zappen, Packen von Datensätzen, Anzeigen und Bearbeiten von Dateien in DOS- oder Windows-Zeichensätzen, Abrufen detaillierter Datenbankinformationen, Exportieren in das txt/html/csv/xls/xlsx-Format und Suchen in eine Datei.

    Überblick

    DBF Converter & DBF Viewer ist ein kompaktes, aber leistungsstarkes Tool zum Anzeigen, Bearbeiten und Drucken von Datenbanken im DBF-Format - Screenshot.
    Es unterstützt dBase, Clipper, FoxPro, Visual FoxPro und andere DBF-Dateiformate. Im Gegensatz zu vielen Analoga ist DBF Converter & DBF Viewer vollständig ein Windows 9x/NT/2000/XP/Vista-Programm. Die benutzerfreundliche Grafik macht das Arbeiten mit Datenbanken einfach und problemlos.
    Die wichtigsten Teile des DBF Converter & DBF Viewer Codes sind in Assembler geschrieben, daher werden die grundlegenden Operationen schnell ausgeführt und die .exe-Datei ist sehr klein (nur 410 KB!).
    DBF Converter & DBF Viewer verwendet eigene Datenbankzugriffstools und benötigt keine externen Treiber für die Verbindung zu Datenbanken (wie ODBC oder BDE) oder zusätzlichen Bibliotheken (.OCX, .DLL).
    Mit dem Programm können Sie hinzufügen, löschen, abrufen, sortieren, zappen, Datensätze packen, Dateien in DOS- oder Windows-Zeichensätzen anzeigen und bearbeiten, detaillierte Datenbankinformationen abrufen, dbf-Dateien in das txt/html-Format exportieren, csv und xls/xlsx in . konvertieren dbf-Format, Import/Export aus MS Excel (einschließlich MS Excel 2007!) und Suche in einer Datei. DBF Converter & DBF Viewer wird mit Installer/Uninstaller, Dokumentation im HTML-Format und Beispieldateien geliefert.

    Wie benutzt man

    Symbolleiste und Menü des DBF-Editors

    Mit der Schaltfläche in der Symbolleiste können Sie Hauptmenübefehle schnell aufrufen. Wenn Sie den Mauszeiger für einen Moment auf einer Schaltfläche belassen, erscheint ein kleines Fenster mit einer Beschreibung.

    dbf gelöscht Flag odbc Dbf Charset Convert Esri

    DBF Converter & DBF Viewer für Windows bestellen

    Die Online-Bestellung ist einfach und sicher. Sie können die am besten geeignete Zahlungsmethode auswählen: Kreditkarte, Banküberweisung, Scheck, PayPal usw. Gegen eine Registrierungsgebühr erhalten Sie das Recht, das Programm lebenslang zu nutzen und innerhalb eines Jahres kostenlose Updates zu erhalten.

    Visual Basic Orders dbf

    MöglichkeitGerichtsverhandlung Einzelunternehmen Unbegrenztes Geschäft
    30 Tage Probezeit --
    max. Anzahl Benutzer/Computer
    11unbegr.
    Kommerzielle Benutzung-
    Anzeigen von DBF-Dateien und Datenbankinformationen
    Sortieren Sie die DBF-Datei, indem Sie auf eine Spalte klicken
    Kopieren Sie den ausgewählten Datensatz in die Zwischenablage
    Bearbeitungsmodus-
    Suchen Sie nach Text in der DBF-Datei
    Drucken von DBF-Dateien
    Nach HTML exportieren, .txt
    Import aus Excel, csv-
    Export nach Excel, csv-
    Befehlszeilenunterstützung-
    PreisFrei
    $69
    $199 $99

    Anschrift

    Für Funktionsanfragen, Fehlerbehebung und allgemeine Hilfe wenden Sie sich bitte an den Kundensupport unter . Stellen Sie sicher, dass Sie Details zu Ihrem Browser, Betriebssystem, DBFView-Version und einen Link (oder entsprechenden Code) angeben.Konvertieren von Stata-Daten in csv

    Feedback

    Mario Secco - Software-Manager
    Wir entwickeln Anwendungssoftware mit jeder Art von Datei im DBF-Format. Die erzeugten DBF-Dateien (FoxPro DBFCDX im Windows-Format) unterscheiden sich von den entsprechenden FoxPro-Dateien, die im DOS-Format generiert wurden: Daher können die Dienstprogramme, die ich zur Pflege der DBF-Dateien (hauptsächlich DBU von Clipper) verwende, alle Formate verwalten. Ich sollte mindestens 3 Versionen des gleichen Dienstprogramms haben. Zu diesem Zweck habe ich eine Recherche im Internet gestartet, um ein rationaleres Werkzeug zu finden. Ich habe mehrere sehr gute Produkte von DBF-Managern heruntergeladen, aber sie lösen das Kompatibilitätsproblem nicht. Nur DBFView hat die Hauptfunktion, nach der ich suche: Es erkennt das DBF-Format! Und dann ist die grafische Oberfläche von DBFView sehr benutzerfreundlich, angenehm zu sehen und die exe ist sehr klein.

    Helen Mitten - Software-Managerin
    Wir waren interessiert, weil unsere Benutzer etwas schnelles und einfaches zum Anzeigen von dbf-Dateien brauchten und wir FoxPro nicht verwenden wollten. Wir hatten ein anderes Dienstprogramm, das unter Windows 95 und NT funktioniert, aber nicht unter Windows 98. Wir haben versucht, Excel zu verwenden, aber es liest nur bis zu 65.536 Datensätze und einige der Dateien, die sie betrachten, sind größer. Ich hatte mir einen anderen dbfviewer angeschaut, aber er hatte nicht alle Funktionen, die Ihrer hat.

    importar dados mdb für dbf

    Lisa C. Stopp - Finanzadministratorin
    Ich schaue mir Ihre Website zu Ihrem Produkt DBF View an. Wir verwenden derzeit Excel 2007 auf XP-Betriebssystemen. Wir speichern Excel-Dateien im DBF IV-Format, damit wir sie in andere von uns verwendete Software importieren können. Funktioniert dieses Programm mit Excel 2007 (.xlsx)?

    Kundendienstmitarbeiter
    Ja, DBFView v3.2 unterstützt den Import von Excel 2007-Dateien (.XLSX-Dateien) in .dbf-Dateien.
    Weitere Informationen zum Importieren von XLSX-Dateien in DBFView finden Sie hier.


    Schau das Video: 02 SSIS SQLServer Import And Export Wizard