Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst MS SQL DB-Daten archivieren?

Mitglied: Schelinho

Schelinho (Level 1) - Jetzt verbinden

18.10.2018 um 09:25 Uhr, 994 Aufrufe, 16 Kommentare, 1 Danke

Hallo zusammen!

Ich habe eine Anwendung, welche MSSQL (SQL Server 2014 SP2) nutzt.
Auf der DB-Instanz laufen diverse Datenbanken. Eine davon wächst stetig an, wodurch es irgendwann wohl zu Performance-Problemen kommen kann..
Jetzt stellt sich mir die Frage, was denn "Best Practice" für die Archivierung von solchen Daten ist?
Eine zusätzliche Datenbank zB "Archiv" erstellen? Habe da diverse Beiträge/posts in Foren finden können, aber nichts Konkretes..
Die Daten sollten natürlich über die Anwendung, wenn konkret danach gesucht/gefiltert wird weiterhin verfügbar bleiben..

Vielen Dank im Voraus für eure Tips/Beiträge!
Mitglied: StefanKittel
18.10.2018 um 09:28 Uhr
Moin,

Archivierung heist aber leider, dass die Daten in der Software nicht mehr verfügbar sind.
Auch ist es in den meisten DBs sehr schwierig zu entscheiden was denn weg kann.
Problem sind die Verbindungen zwischen den verschiedenen Datensätzen.

Eigentlich kann man so etwas nur aus der Anwendung heraus durchführen.
Die weiß wie die Daten zusammengehören und was weg kann.

Stefan
Bitte warten ..
Mitglied: wiesi200
18.10.2018 um 09:43 Uhr
Hallo,

da kann man nicht's pauschal sagen.
Auch nicht zu den Performance Problemen.

Es kommt auf die Art der Daten / Art der Zugriffe Anwendung usw. an.
Am besten du erkundigst dich mal bei dem Hersteller.

Von wie vielen Datensätzen und DB Größe reden wir hier eigentlich?
Bitte warten ..
Mitglied: it-frosch
18.10.2018, aktualisiert um 09:47 Uhr
Hallo Schelinho,

unabhängig von deiner Frage nach der Archivierung würde ich erst einmal den Grund für das Wachstum ergründen.
Ist es das Log, was du DB wachsen lässt oder gibt es wirklich einzelne Tabellen die immer größer werden?

Das mit dem Log kannst du im Managmentstudio prüfen (Backuptyp - Simple u.s.w. - wieviel Platz in der Transaktionslog freigeben werden kann).

Speicherplatz pro Tabelle einer DB kannst du mit dieser Procedure auswerten:
Quelle: https://www.fractalcenter.de/2010/08/grose-aller-tabellen-ermitteln-mssq ...

Mit exec Groesse_aller_Tabellen_einer_DB aufrufen.

01.
CREATE PROCEDURE [dbo].[Groesse_aller_Tabellen_einer_DB]
02.
AS
03.
BEGIN
04.
SET NOCOUNT ON;
05.

06.
declare @RowCount int, @tablename VARCHAR(100)
07.
declare @Tables table (
08.
PK int IDENTITY(1,1),
09.
tablename VARCHAR(100),
10.
processed BIT
11.
)
12.
INSERT INTO  @Tables (tablename)
13.
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' and TABLE_NAME NOT LIKE 'dt%' ORDER BY TABLE_NAME asc
14.

15.
declare @Space TABLE (
16.
name VARCHAR(100), rows nVARCHAR(100), reserved VARCHAR(100), data VARCHAR(100), index_size VARCHAR(100), UNUSED VARCHAR(100)
17.
)
18.
SELECT TOP 1 @tablename = tablename FROM @Tables WHERE processed IS NULL
19.
SET @RowCount = 1
20.
WHILE (@RowCount != 0)
21.
BEGIN
22.
insert INTO  @Space exec sp_spaceused @tablename
23.
UPDATE @Tables set processed = 1 WHERE tablename = @tablename
24.
SELECT TOP 1 @tablename = tablename FROM @Tables WHERE processed IS NULL
25.
SET @RowCount = @@RowCount
26.
END
27.

28.
UPDATE @Space set data = replace(data, ' KB', '')
29.
UPDATE @Space set data = convert(int, data)/1000
30.
UPDATE @Space set data = data + ' MB'
31.
UPDATE @Space set reserved = replace(reserved, ' KB', '')
32.
UPDATE @Space set reserved = convert(int, reserved)/1000
33.
UPDATE @Space set reserved = reserved + ' MB'
34.

35.
SELECT * FROM @Space ORDER BY CONVERT(INT, REPLACE(data, ' MB', '')) DESC
36.
END
Als Archiv könntest du Datensätze vor einem bestimmten Zeitstempel in eine neue DB übertragen und, falls mit deiner App möglich, eine Archivversion den Usern bereitstellen. So machen wir das bei uns.

Grüße vom it-frosch
Bitte warten ..
Mitglied: SeaStorm
18.10.2018 um 10:08 Uhr
Hi

Grundsätzlich wird MSSQL nicht langsamer, weil da mehr Daten in der Tabelle sind. Sofern die Queries nicht Murks, die Felder korrekt erstellt und die Indexe richtig sind, passiert da an der Performance garnix.

Eine Archivierung muss aus der Applikation erfolgen, da nur diese die Abhängigkeiten der Daten kennt und im Zweifelsfall auf das Archiv zugreifen kann.
Bitte warten ..
Mitglied: Schelinho
18.10.2018 um 10:10 Uhr
Hallo!

Vielen Dank für die Antworten!

Also die Datenbank, die es eigentlich betrifft ist aktuell um die 10GB groß.
Eine der größten Tabellen in der DB enthält über 10 Millionen Datensätze
Bitte warten ..
Mitglied: Penny.Cilin
18.10.2018 um 10:31 Uhr
Hallo,

was genau ist mit Performance Problemen gemeint? Das ist eine sehr schwammige Aussage.
Ist damit evtl. die Rückmeldung / Antwort einens oder mehrere Queries gemeint?
Ist die Anwendung träge, wenn ja wie äußert sich dies?

Evtl. gibt es Optimierungsbedarf bei den Queries. Hatte vor längerer Zeit den Fall, daß aufgrund der Queries die Antwortzeiten das Problem war. Selbst Microsoft, welche wir eingeschaltet hatten, konnten uns damals nicht weiter helfen. Erst ein Datenbankentwickler (Freelancer) hat uns geholfen, das Problem zu lösen.

Diese Aktion hat uns damals mehrere Tage beschäftigt. Wobei die Grundvoraussetzungen eigentlich gut waren. Es wurde damals ein Cluster aufgesetzt, mit entsprechender Netzwerkanbindung.

Gruss Penny.
Bitte warten ..
Mitglied: wiesi200
18.10.2018 um 10:43 Uhr
Zitat von Schelinho:

Hallo!

Vielen Dank für die Antworten!

Also die Datenbank, die es eigentlich betrifft ist aktuell um die 10GB groß.
Eine der größten Tabellen in der DB enthält über 10 Millionen Datensätze

Find ich jetzt ansich nicht sonderlich spannend. Wenn's zu Problemen kommt dann hast du Probleme mit dem Index oder Schlechte Abfragen.
Aber das ist alles eh schon erwähnt worden.
Hast du Wartungstask eingerichtet die entsprechend den Index optimieren?
Bitte warten ..
Mitglied: Schelinho
18.10.2018 um 10:49 Uhr
Von den Abfragen her sind wir vom SW-Hersteller abhänging, da kann ich so einfach nichts ändern.
Wartungstasks sind eingerichtet.
Noch gibt es ja keine Performance-Probleme, doch es kann in Zukunft dazu kommen, wenn sich die jeweiligen DBs immer mehr vergrößern, und das werden sie in den nächsten Monaten tun.
Aber ich werde mich mit dem Hersteller nochmal zusammen setzen, und das genauer abklären.
Mich hat grundsätzlich interessiert, ob es da sonst "Standard-Vorgangsweisen" gibt, die man einsetzen kann um Daten zu archivieren (ohne zusätzliche externe Software für diesen Zweck)

danke
Bitte warten ..
Mitglied: wiesi200
18.10.2018 um 11:52 Uhr
Zitat von Schelinho:

Mich hat grundsätzlich interessiert, ob es da sonst "Standard-Vorgangsweisen" gibt, die man einsetzen kann um Daten zu archivieren (ohne zusätzliche externe Software für diesen Zweck)

Nö, entweder ist das überhaupt nicht notwendig, die Software flasch programmiert bzw. falsch ausgewählt, oder direkt in der Software Enthalten.
Bitte warten ..
Mitglied: VGem-e
18.10.2018 um 14:05 Uhr
Servus,

gibt es nicht wie früher noch die Möglichkeit, einen Task für eine DB-Reorganisation mit einzusetzen?

Gruß
Bitte warten ..
Mitglied: wiesi200
18.10.2018 um 14:47 Uhr
Zitat von VGem-e:

Servus,

gibt es nicht wie früher noch die Möglichkeit, einen Task für eine DB-Reorganisation mit einzusetzen?

Er schreibt, Wartungstask's sind eingerichtet
Bitte warten ..
Mitglied: ukulele-7
19.10.2018 um 09:43 Uhr
Zitat von Schelinho:

Noch gibt es ja keine Performance-Probleme, doch es kann in Zukunft dazu kommen, wenn sich die jeweiligen DBs immer mehr vergrößern, und das werden sie in den nächsten Monaten tun.
Deine Schlussfolgerung ist nicht korrekt. 10 Mio Datensätze sind nicht viel und 10 GB auch nicht. Wenn die Aplikation das so vorsieht muss man erstmal davon ausgehen das sie auch damit umgehen kann. Die DB kann das sowieso.

Sofern du kein SQL Express einsetzt ist hier nicht mit Problemen zu rechnen. Der Hersteller der Anwendung ist aber ein guter Ansprechpartner wenn es wirklich Probleme gibt und es um die Dimensionierung der DB-Hardware geht.
Bitte warten ..
Mitglied: Schelinho
19.10.2018 um 10:13 Uhr
Naja, der Hersteller selbst kann eben nicht genau sagen, wie sich das System dann verhält, wenn die DBs größer werden, und da ist es wohl besser vorab eine Lösung zu implementieren, oder zumindest eine zu planen, und nicht erst wenn das Ding dann steht (zumindest bei den Anforderungen die ich hier habe, sprich ein Ausfall seeehr teuer ist)
Bitte warten ..
Mitglied: Penny.Cilin
19.10.2018 um 10:22 Uhr
Moment, der Hersteller kann nicht nicht genau sagen, wie sich das System dann verhält, wenn die DBs größer werden?
Sorry, das ist doch Murks. Mit welchen DB-Größen bzw. mit welchen/wievielen Datensätzen arbeitet der Hersteller denn?

Fragt den Hersteller bis welche Größe / Menge an Datensätzen er den Betrieb gewährleisten kann. Was macht Ihr, wenn die Datenbank 30 GiB groß ist und 100 Millionen Datensätze enthält?

Gruss Penny.
Bitte warten ..
Mitglied: SeaStorm
19.10.2018 um 10:22 Uhr
Dann soll der Hersteller das gefälligst testen...
Er kann doch die Software in einer Testumgebung mit Daten vollpumpen. Dann sieht er was passiert.
Bitte warten ..
Mitglied: Schelinho
19.10.2018 um 10:32 Uhr
Ja, genau das wird aktuell gemacht.

Danke für eure Inputs.
Bitte warten ..
Ähnliche Inhalte
Datenbanken

Datenänderungen in DB an einem MS SQL 2012 nachverfolgen?

gelöst Frage von AdminKnechtDatenbanken6 Kommentare

Hallo zusammen, ich arbeite mich zur Zeit in Dynamics NAV 2013 R2 und der dazugehörenden DB auf einem MS ...

Datenbanken

SQL 2000 DB ist Fehlerverdächtig

Frage von franksigDatenbanken3 Kommentare

Hallo Ich habe einen alten SQL 2000 bei dem wohl eine DB defekt ist im Management Studio Express ist ...

Windows Tools

MS SQL Instanz

Frage von sebastian2608Windows Tools6 Kommentare

N´ Abend Leute, heute habe ich einen besonders seltsamen Fall für euch ;) Folgende Grundsituation: Ein Bekannter hatte bis ...

Datenbanken

Backup restore SQL Express DB

Frage von franksigDatenbanken7 Kommentare

Hallo zusammen. ich bin keine SQL leuchte und hab da mal eine frage ich möchte gerne eine SQL Express ...

Neue Wissensbeiträge
Windows Installation

Windows Install ISO mit übergroßer Install.wim auf FAT32 übertragen

Tipp von Lochkartenstanzer vor 18 StundenWindows Installation9 Kommentare

Moin Kollegen, Viele von euch werden sicher aus praktischen Gründen nicht nur DVDs oder "virtuelle" CD-Laufwerke (Zalman, IODD) zum ...

Datenschutz

Gehe zurück auf Los, ziehe keine 4.000 Mark. E-Privacy (erstmal) gescheitert

Information von certifiedit.net vor 1 TagDatenschutz

Webbrowser

Firefox 71 verfügbar mit Picture in Picture Funktion

Information von sabines vor 1 TagWebbrowser2 Kommentare

Die neue Firefox Version 71 unterstützt, zunächst nur für Windows, Picture in Picture. Damit kann ein Video in einem ...

E-Mail
SPF beim Versenden testen
Tipp von StefanKittel vor 3 TagenE-Mail3 Kommentare

Hallo, wenn man einen SPF für einen Exchange, oder anderen Mail-Server, konfigiruert muss man das ja auch testen. Ganz ...

Heiß diskutierte Inhalte
Virtualisierung
Linux Ubuntu Error
gelöst Frage von Nickolas.GroheVirtualisierung25 Kommentare

Hallo, Ich habe in einer VirtuaBox Linux Ubuntu Installiert. 4096 mbit ram 64,00 GB 3 von 8 Cpu Wenn ...

Hyper-V
Wie berechne ich mir die Anzahl der vCPU für HYPER-V aus?
Frage von samet22Hyper-V20 Kommentare

Hallo, bitte nicht schimpfen, ich habe mich nur selber gerade etwas verwirrt :D Wie berechne ich mir aus wieviele ...

LAN, WAN, Wireless
WLAN Absicherung
gelöst Frage von Alex29LAN, WAN, Wireless19 Kommentare

Hallo zusammen, WPA2 wurde vor einiger Zeit geknackt. Auch bei WPA3 wurden schon Lücken aufgezeigt aber das größere Problem ...

Debian
Zweite IP - Routing?
gelöst Frage von thepandapi94Debian15 Kommentare

Hey Zusammen, ich habe gestern über Hetzner eine zweite IP bezogen. Laut Hetzner soll diese auch auf die primäre ...