Benutzer mit den meisten Antworten
SQL Server Einstellungen optimieren

Frage
Antworten
-
- Als Antwort vorgeschlagen Christoph Muthmann Freitag, 1. August 2014 09:00
- Als Antwort markiert BlauesBlatt Samstag, 9. August 2014 04:44
-
...
Ich habe ca. 4,8 Sekunden Wartezeit am Server.
Kann ich das durch Einstellungen optimieren?
...Worauf beziehen sich diese 4,8 Sekunden?
Um eine bestimmte Abfrage aus X?
Im Durchschnitt?
Es kommt ja sehr auf das eigentliche Problem an. Daher muss man den Kontext kennen.
Natürlich kann man bei der Einrichtung einiges "falsch", oder suboptimal machen. Beispielsweise Log und Datendateien auf das selbe Laufwerk etc.
Aber so rein von den Einstellungen her gibt es nur wenig, was man prinzipiell ändern sollte.
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com- Als Antwort vorgeschlagen Christoph Muthmann Freitag, 1. August 2014 09:00
- Als Antwort markiert BlauesBlatt Freitag, 1. August 2014 09:34
Alle Antworten
-
- Als Antwort vorgeschlagen Christoph Muthmann Freitag, 1. August 2014 09:00
- Als Antwort markiert BlauesBlatt Samstag, 9. August 2014 04:44
-
...
Ich habe ca. 4,8 Sekunden Wartezeit am Server.
Kann ich das durch Einstellungen optimieren?
...Worauf beziehen sich diese 4,8 Sekunden?
Um eine bestimmte Abfrage aus X?
Im Durchschnitt?
Es kommt ja sehr auf das eigentliche Problem an. Daher muss man den Kontext kennen.
Natürlich kann man bei der Einrichtung einiges "falsch", oder suboptimal machen. Beispielsweise Log und Datendateien auf das selbe Laufwerk etc.
Aber so rein von den Einstellungen her gibt es nur wenig, was man prinzipiell ändern sollte.
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com- Als Antwort vorgeschlagen Christoph Muthmann Freitag, 1. August 2014 09:00
- Als Antwort markiert BlauesBlatt Freitag, 1. August 2014 09:34
-
Der Einstieg in die Beantwortung deiner Frage ist eine Gegenfrage:
Worauf wartest du 4,8 sec?
Wartest Du auf das Ergebnis einer Abfrage im SQL Server Management Studio? Falls ja: Wie sieht denn diese Abfrage sowie die Struktur der zugehörigen Tabellen (incl. Indices) aus? Kannst Du den aktuellen Ausführungsplan zur Verfügung stellen?
Oder:
Wartest Du auf ein Ergebnis, das in einer Applikation angezeigt werden soll? Falls ja: kannst Du mittels Profiler Trace den SQL-Anteil an der Wartezeit ermitteln?
Oder:
Handelt es sich um eine Abfrage, die Hunderttausende von Datensätzen zurück gibt, die auch alle ausgegeben werden? Falls ja, ist es üblicherweise das Netzwerk, das die Datenmengen erst mal vom Server zum Client "schaufeln" muß.
Wie Du siehst, gibt es eine Vielzahl von Möglichkeiten (o.g. sind nur ein paar Ansätze). Ohne weitere Infos können wir nur raten...
-
Infos gab es reichlich, allerdings im anderen Thread:
http://social.msdn.microsoft.com/Forums/de-DE/bbc1a40c-89cd-4cf0-b411-037607f00326/datenbankzugriff-beschleunigen?forum=sqlserverexpressde
Einen schönen Tag noch,
Christoph
--
Microsoft SQL Server MVP - http://www.insidesql.org/blogs/cmu -
Infos gab es reichlich, allerdings im anderen Thread:
http://social.msdn.microsoft.com/Forums/de-DE/bbc1a40c-89cd-4cf0-b411-037607f00326/datenbankzugriff-beschleunigen?forum=sqlserverexpressde
Einen schönen Tag noch,
Christoph
--
Microsoft SQL Server MVP - http://www.insidesql.org/blogs/cmuIch sehe da momentan keinen direkten Zusammenhang - im Link geht es um Stunden und hier um 4,8s.
Sollte es tatsächlich das gleiche Thema sein, ist das doch schon mal ein gewaltiger Fortschritt ;-)
-
Hallo!
SQL ist vom Tisch.
Weil zu langsam und kann zu wenig Daten.
Danke.
Gruß Klaus
Danke Dir für den Scherz am Morgen!!
Die Aussage ist analog zu "Ein Schreubenzieher ist ungeeignet, um eine Schraube ein- bzw. auszudrehen!" (sofern man ihn am "dünnen Ende" anfasst)...
Leider hast du es bis heute nicht geschafft, dein Problem an Hand von ein paar Beispieldaten und der zu implementierenden Logik darzustellen.
Ein paar Millionen Datensätze zu erzeugen und mit Daten aus einer anderen Quelle (ebenfalls Tabelle in einer Datenbank?) zu vergleichen und ein paar Berechnungen anzustellen, ist -rein technisch gesehen- für den SQL Server eine Frage von Sekunden, im worst case wenige Minuten (dann ist da aber schon ein "Triangular Join" involviert). Und zwar auf meinem ziemlich alten PC.
Wenn das Ganze deutlich länger dauert, ist das kein Problem des SQL Servers, sondern der implementierten Logik. Und damit befindet sich die Ursache vor dem Bildschirm. Nicht dahinter.
Falls Du immer noch an einer performanten Lösung interessiert bist, beschreibe Dein Problem als logischen Ablauf und trenne Dich davon, es unbedingt so machen zu wollen, wie Du es jetzt probierst.
Wenn man schneler vorwärts kommen will, ist es zwar schon ein Fortschritt, vom Robben zum Krabbeln zu wechseln. Viel schneller kommt wan aber voran, wenn man rennt...
-
Und hier noch ein kleines Beispiel, wie man "auf die Schnelle" 12 Millionen Datensätze ohne jegliche Schleife erzeugt. Dauer: 24sec.
Wie lange braucht Deine Loop gleich nochmal? ...
WITH cte AS ( SELECT TOP 1000 Number FROM master..spt_values ) SELECT TOP 12000000 ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) as n INTO #t1 FROM cte CROSS JOIN (SELECT * FROM cte) x CROSS JOIN (SELECT TOP 12 * FROM cte) y
-
Weil jeder meiner Datensätze andere Daten hat.
Und ich sie somit einzeln schreiben muss.
Aber...
wie kann ich eine Textdatei zeilenweise lesen und jede Zeile in einer Variable speichern?
Es sollte so sein:
Wert1 = Zeile1
Wert2 = Zeile2
Wert3 = Zeile3
usw.
Wert1...3 ist meine Variable und Zeile1...3 ist Zeile Nummer...
Die Werte in den Zeilen sind Zahlen und müssen auch in der Variable eine Zahl sein.
Danke.
Gruß Klaus
-
Hallo Klaus,
das Thema hatten wir im anderen Thread ja schon ausreichend diskutiert. Auch wenn Du es nicht wahrhaben willst: Das liegt nicht am SQL Server oder einem DBMS an sich, das liegt an deinem Code bzw. dem fehlenden Verständnis deinerseits. Aber lassen wir das, meine abschließende Meinung und einen Vorschlag, wann und wie wir da weitermachen können, hatte ich dir ja schon mehrfach geschrieben.
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 -
Am 09.08.2014 schrieb BlauesBlatt:
wie kann ich eine Textdatei zeilenweise lesen und jede Zeile in einer Variable speichern?
Servus
Winfried
Gruppenrichtlinien
WSUS Package Publisher
HowTos zum WSUS Package Publisher
NNTP-Bridge für MS-Foren -
Weil jeder meiner Datensätze andere Daten hat.
In meinem Beispiel ist das nicht anders...
Es ist der "Nachbau" Deines Codes im "andren Thread":, reduziert auf eine Spalte:
Do Until strCounter = strStop cmd.CommandText = "INSERT Test (ID, Wert1, Wert2) VALUES ('" & strCounter & "', '" & strWert1 & "', '" & strWert2 & "')" cmd.Connection = sqlCon sqlCon.Open() cmd.ExecuteNonQuery() sqlCon.Close() strWert1 = strWert1 + 1 strWert2 = strWert2 + 1 strCounter = strConter +1 If strConter = 12000000 Then strStop = strCounter End If Loop
Falls Du Schwierigkeiten damit hast, den Rest Deines Codes in das SQL Statement einzufügen, und Du Dich offensichtlich mit Nachdruck weigerst, jegliches Hilfsangebot auszuschlagen, dann ist die Umsetzung mittels SQL Server wahrscheinlich wirklich nichts für Dich.
Ich hoffe nur, daß es sich dabei nicht um eine Applikation handelt, die
a) industriell / professionell genutzt werden soll und/oder
b) die ein Einkommen irgendwelcher Art ermöglicht (sei es als Freelancer oder im Rahmen Deines Jobs).
So lange es nur für Dich selbst ist, kannst Du damit spielen, so lange Du willst. Soll der Code jedoch genutzt werden, empfehle ich dringend, daß Du das Thema jemanden zur Bearbeitung gibst, der sich mit performanter Programmierung auskennt...
Ich denke, auch ich gebe jetzt hier auf.
Viel Glück noch! (Denn Glück ist das Einzige, was Dir noch helfen wird...).
-
Nicht der SQL Server ist bei 10GB "am Ende", sondern dies ist die Grenze der (kostenlosen) Express-Version.
SQL Standard kann deutlich mehr.
Ich wünsche Dir vie Erfolg, eine DB zu finden, die (unter Beibehaltung des bisherigen Programmierstils) auch nur eine annähernd akzeptable Performance bietet...
-
Ich wünsche Dir vie Erfolg, eine DB zu finden, die (unter Beibehaltung des bisherigen Programmierstils) auch nur eine annähernd akzeptable Performance bietet...
Mit meinem Programmierstil macht SQL bis über 130000 Select/Min..
Ist das akzeptabel?
Und dabei habe ich nur den Index geändert...