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

Frage Entwicklung Datenbanken

Mitglied: Marcelg

Marcelg (Level 1) - Jetzt verbinden

16.04.2011 um 13:19 Uhr, 6517 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
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 14 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 17 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...