none
Probleme bei Import einer DB aus SQLServer2008R2 in SQLServer2014SP1 RRS feed

  • 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

    Mittwoch, 22. Juni 2016 07:17

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]

    Mittwoch, 22. Juni 2016 07:27

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]

    Mittwoch, 22. Juni 2016 07:27
  • 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

    Mittwoch, 22. Juni 2016 08:01
    Moderator
  • 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

    Mittwoch, 22. Juni 2016 13:36
  • 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]


    Mittwoch, 22. Juni 2016 14:48