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

SQL Server 2008 R2 Query auf mehrere kerne verteilen

Mitglied: Marcelg

Marcelg (Level 1) - Jetzt verbinden

16.04.2011 um 13:19 Uhr, 6562 Aufrufe, 5 Kommentare

Hallo, habe ein performance Problem auf einem MS SQL Server 2008 R2

Hallo,

Wie schon in Vorwort gesagt ich habe ein performance Problem auf einem MS SQL Server 2008 R2.
Ich muss eine relativ grosse Query absetzen die eine View erzeugt und per insert befehl die Daten in eine Tabelle schreibt und dabei noch einige String Operationen ausführt.
Die Query läuft dabei bis zu 13h - ich sollte das aber in ca 1h schaffen. Als Hardware kommt ein i5 mit 4 cores und 2,9GH und 8GB RAM zum Einsatz - wir hatten aber auch schon grössere Server im Einsatz ohne nennenswerten performance Erfolg. Die Query lastet nämlich immer nur 1 der 4 Cores aus, obwohl dem SQL Server alle Kerne zugewiesen sind. Das lässt den Schluss zu, dass der SQL Server nicht parallelisiert, bzw. nicht auf 4 Kerne verteilt. Könnt ihr mir sagen wie/wo ich nachschauen kann ob er die Query wirklich nicht verteilt wird und mir einen Lösungsansatz verraten wie ich ihn dazu bringe das ganze zu parallelisieren - bzw. auf alle 4 Kerne zu verteilen.
Die Installation ist komplett Standard ohne Modifikationen bisher.

Danke schon mal für eure Antworten,
Gruss, Marcel
Mitglied: Biber
16.04.2011 um 19:25 Uhr
Moin Marcel,

bisschen dünne Angaben für eine zielführende Antwort, meinst du nicht?

Sind denn alle Voraussetzungen erfüllt bzw. gegeben, dass diese Abfrage parallelisiert abgekaspert werden kann?
Ist der TEMP-Tablespace auch auf 4 (also Anzahl Prozessoren) data files aufgeteilt?
Wie gross ist die "sort area"?
Wo verbrennt denn die Query die Zeit - beim Sort, beim Seitenladen oder wo?
Was sagen EXPLAINs, was sagen Optimizer?
Werden die richtigen Zugriffspfade gefunden oder wenigstens erzwungen?
Bei den 13h - wieviel davon ist CPU-Zeit, wieviel ist IO-Geswappe?

Ein SQL zu tunen mit schnellerem Prozessor oder mehreren davon... mag sich gut anhören.
Aber eine Query, die 13h läuft... das ist absolut indiskutabel.

Das hört sich für mich mit Verlaub gesagt eher wie ein Designfehler an.

Grüße
Biber
Bitte warten ..
Mitglied: Marcelg
19.04.2011 um 10:26 Uhr
Hallo Biber,

Danke für deine Antworten. Ich habe das Problem jetzt ein wenig genauer Analysiert und bin auf ein interessantes Phänomen gestossen.
Im Zuge der Query die mehere SQL Statements abschickt baue ich eine View in 4 Tranchen auf. Dazu Teile ich eine Tabelle in 4 Teile und lasse die 4 Teile nacheinander durch das gleiche SQL Statement laufen. Beim 1. Durchlauf dauert das ganze ca 25 Minuten, bei den Tranchen 2-4 ca 3.5 Stunden. Der Fehler kann nicht in den Daten liegen, da es egal ist welche Tranche ich als Erste laufen lasse - also zB die 3. Tranche als erste - diese ist immer so schnell. Ein RAM Problem habe ich auch ausgeschlossen, ich weise dem SQL Server 32GB zu, von denen er sich aber nur 17GB nimmt.
Hast du vielleicht eine Idee an was diese komische Laufzeitvergrösserung liegen könnte?

Danke & Gruss
Bitte warten ..
Mitglied: Biber
19.04.2011 um 11:19 Uhr
Moin Marcelg,

aus dem Bauch heraus ist für mich folgende Erklärung die naheliegendste:

Beim ersten Durchlauf "lernt" der Optimizer, was und welches für ihn die günstigsten Zugriffspfade sind. Also ob ein Index genutzt wird oder ein Full-Table-Scan "effizienter" ist, welche Tabelle bei einem Join der Master und welche Child ist etc.
Möglicherweise schreibt er dazu auch Statistiken, um seine Zugriffe beim nächsten Mal aufgrund dieser "Erfahrungen" zu entscheiden.
Wären keine Statistiken, keine Erfahrungswerte da, dann würde er auch wie beim allerersten Mal die DEFAULT-Werte nehmen, also nur aufgrund der Datengröße/Datensatzanzahl pauschalieren.

Vermutlich sind die vier Viertel, in die du deine View-Befüllung unterteilt hast, eben inhaltlich NICHT sehr, sehr ähnlich.
Das heisst, die Statistiken, die für das erste (oder ein beliebiges) Viertel berechnet werden für den optimalen Zugriffspfad sind nicht auf ein anderes Viertel übertragbar.

--> dann müsstest du dem Datenbankblech sagen, dass die Daten volatile sind -->ist neudeutsch für "jedesmal anders, immer wieder zufällig"

So etwas kann sein, wenn die INPUT-Tabellen für den View z.b stark im Volumen oder der Kardinalität schwanken, z.B. öfters geleert/neu erzeugt werden.

Aber ist alles Spekulation ->da müsstest du schon mal selber versuchen, den Hintergrund dieser Tabellen-in-View-Drück-Mimik zu beschreiben.

Grüße
Biber
Bitte warten ..
Mitglied: Marcelg
19.04.2011 um 11:51 Uhr
Hallo Biber,

Das klingt für mich nach einer vernünftigen Erklärung. Ich würde dies gerne Ausprobieren - kannst du mir sagen wo ich die Einstellungen finde mit dem ich dem SQL Server 2008 R2 sagen kann dass die Daten volatil sind?

Danke schon mal & Grüsse
Bitte warten ..
Mitglied: Biber
20.04.2011 um 10:35 Uhr
Moin Marcelg,

der SQLServer ist nicht mein Fachgebiet.
Über eine beliebte Suchmaschine konnte ich mir eben zumindest zusammenreimen, dass beim M$SQLServer das Wort "volatile" (fast?) immer nur gebraucht wird als Synonym für (global) temporary tables.

Die sind zwar auch volatil (es werden keine Statistiken gepflegt, weil unsinnig), aber die meinte ich nicht.

Ich kann dich nur auf den beschwerlichen Weg der Suchmaschinenbefragung lenken, Suchbegriffe "Optimizer Hints" ,"(view) Query Optimization" plus "mssqlserver".

Bitte auch nicht ganz vernachlässigen, dass ich viel, viel weiter oben auch schon locker angefragt habe, inwieweit das Tuning/die eXplains zu der Query erfolgt sind.

Bei Querys ist es immer ein bisschen unkalkulierbar, versuchsweise an verschiedenen Rädchen zu drehen ohne begründete Indizien.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Windows Server
SQL Server 2008 R2
gelöst Frage von Marcel94Windows Server1 Kommentar

Hallo Zusammen, habe ein kleines Problem bezgl. einer SQL Server 2008 R2 Installation. Zu meiner Frage. Habe soweit alles ...

CPU, RAM, Mainboards

Könnte die VM mehr CPUs (Kern) haben als Server

gelöst Frage von justdanCPU, RAM, Mainboards10 Kommentare

könnte die VM mehr CPUs (Kern) haben als Server? Also bei uns isso, Server hat 24 CPUs , aber ...

Datenbanken

SQL Server 2008 R2 iso

Frage von Doktore77Datenbanken6 Kommentare

Hallo zusammen, wir haben das Problem, das wir einen 2008 R2 SQL neu aufsetzen müssen. Die Lizenz ist vorhanden, ...

Microsoft

Update SQL server 2008 auf SQL server 2008 R2

Frage von LeptoptilusMicrosoft

Guten Tag ist das Update über die updateinstallation möglich? ist etwas besonderes zu beachten? bin für jede Hilfe dankbar!! ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 9 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 11 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 11 StundenMicrosoft7 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 2 TagenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1026 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser13 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...