Benutzer mit den meisten Antworten
Probleme bei Import einer DB aus SQLServer2008R2 in SQLServer2014SP1

Frage
-
Hallo
ich muß für einen Kunden eine Datenbank auf SQL2014 umstellen. Beim Datenimport habe ich folgendes ausgewählt:
Source (SQLServer2008 R2):
SQL Server Native Client 10.0 (auch mit 11.0 versucht)
Die zu importierende Datenbank
Destination (SQLServer2014 SP1):
SQL Server Native Client 11.0D
Datenbankname neu (wie alte Datenbank) aber am neuen Server.
Probleme:
1. Ich habe für den Export von Daten ein paar sehr komplexe Views. Diese brauchen beim Import teilweise sehr viel Zeit. Was könnte die Ursache sein? Möglicherweise sind die Views schlecht konzipiert. Die Views wurden alle mit dem View Design aus dem SQL Management Studio erstellt. Hier ein Beispiel:
SELECT dbo.Buchung.BuchungID, dbo.Buchung.BeratungsstelleID, dbo.Buchung.BeraterID, dbo.Buchung.KlientID, dbo.Buchung.AbteilungID, dbo.Buchung.Von, dbo.Buchung.Bis, dbo.Buchung.Notizen, dbo.KlientStamm.Geschlecht, dbo.BuchungBinH.BeratungsinhaltID, dbo.BuchungBinH.BuchungBinHID, dbo.Statistik.StatistikSchemaDetailID, dbo.StatistikSchemaDetail.StatistikSchemaDetailBezeichnung, dbo.StatistikSchemaDetail.StatistikDetailSchluessel, dbo.StatistikSchemaGruppe.StatistikGruppeSchluessel, dbo.StatistikSchemaGruppe.StatistikSchemaGruppeBezeichnung, dbo.Beratungsinhalt.Beratungsinhaltnummer, dbo.Beratungsinhalt.BeratungsinhaltBezeichnung, dbo.Berater.FamName + ' ' + dbo.Berater.Vorname AS BeraterName FROM dbo.Buchung INNER JOIN dbo.KlientStamm ON dbo.Buchung.KlientID = dbo.KlientStamm.KlientID INNER JOIN dbo.BuchungBinH ON dbo.Buchung.BuchungID = dbo.BuchungBinH.BuchungID AND dbo.KlientStamm.KlientID = dbo.BuchungBinH.KlientID INNER JOIN dbo.Statistik ON dbo.KlientStamm.KlientID = dbo.Statistik.KlientStammID INNER JOIN dbo.StatistikSchemaDetail ON dbo.Statistik.StatistikSchemaDetailID = dbo.StatistikSchemaDetail.StatistikSchemaDetailID INNER JOIN dbo.StatistikSchemaGruppe ON dbo.StatistikSchemaDetail.StatistikGruppeID = dbo.StatistikSchemaGruppe.StatistikGruppeID INNER JOIN dbo.Beratungsinhalt ON dbo.BuchungBinH.BeratungsinhaltID = dbo.Beratungsinhalt.BeratungsinhaltID INNER JOIN dbo.Berater ON dbo.Buchung.BeraterID = dbo.Berater.BeraterID
2. Ich habe zum Testen die Views gelöscht und die Datenbank importiert. Das ging relativ schnell. War mir aber aufgefallen ist, dass bei der ID der jeweiligen Tabelle nicht mehr als Primärschlüssel markiert ist und dass sämtliche Beziehungen fehlen.
Vielen Dank im Voraus für Eure Hilfe.
Siegfried
Antworten
-
Hallo Siegfried,
mir ist nicht ganz klar, was Ziel dieser Aktion ist? Normalerweise macht man zur Datenbank Migration ein Full Backup der Datenbank und sichert das auf dem Zielserver zurück; so ist gewährleistet, das die Datenbank vollständig ist.
zu 2) Der Import/Export Wizard kopiert nur stumpf die Daten von A nach B, sonstige Objektstrukturen wie Indizes, Identity, Constraints, Trigger, Statistiken etc. werden dabei nicht übernommen.
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort vorgeschlagen Christoph MuthmannEditor Mittwoch, 22. Juni 2016 12:24
- Als Antwort markiert Siegfried Reichmann Mittwoch, 22. Juni 2016 13:36
Alle Antworten
-
Hallo Siegfried,
mir ist nicht ganz klar, was Ziel dieser Aktion ist? Normalerweise macht man zur Datenbank Migration ein Full Backup der Datenbank und sichert das auf dem Zielserver zurück; so ist gewährleistet, das die Datenbank vollständig ist.
zu 2) Der Import/Export Wizard kopiert nur stumpf die Daten von A nach B, sonstige Objektstrukturen wie Indizes, Identity, Constraints, Trigger, Statistiken etc. werden dabei nicht übernommen.
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort vorgeschlagen Christoph MuthmannEditor Mittwoch, 22. Juni 2016 12:24
- Als Antwort markiert Siegfried Reichmann Mittwoch, 22. Juni 2016 13:36
-
Hallo Siegfried,
ob deine Views schlecht designt sind oder nicht, kann hier keiner beantworten, da niemand deine Datenbankstruktur, Datenmengen, Schlüssel, Indizes, usw. kennt.
Zusätzlich zu Olafs Anmerkung, dass man beim Umstellen einer Datenbank von Version x zu Version y eher mit Backup & Restore arbeitet, frage ich mich, warum Du die Daten, die eine View bereitstellt, beim Export/Import überhaupt ausliest? Die View wird doch sehr wahrscheinlich mit identischem Aufbau in der Zieldatenbank ebenfalls benötigt, oder?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Christoph MuthmannEditor Mittwoch, 22. Juni 2016 12:24
-
Hallo Olaf,
das mit dem Backup hat problemlos funktioniert. War mir nicht sicher ob das Format kompatibel ist und dachte mir das Tool Import/Export ist vielleicht für eine Migration.
Vielen Dank für den Tipp und die Erläuterung bezüglich Import/Export.
Siegfried
-
Hallo Siegfried,
das Backup Format ist in der Regel über 3 Versionen Kompatibel, d.h. im SQL Server 2014 kannst Du Backups aus den Versionen 2012, 2008 (R2) und 2005 rücksichern.
Denke daran bei Bedarf den Compatibility Level der Datenbank von 100 = SQL Server 2008 (R2) auf 120 = SQL Server 2014 zu ändern. Aber auch etwas Achtung dabei: SQL Server 2014’s new cardinality estimator
Olaf Helper
[ Blog] [ Xing] [ MVP]- Bearbeitet Olaf HelperMVP Mittwoch, 22. Juni 2016 14:50