Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Kann ich ein Query "nicen" - weniger Priorität geben? Legt Server komplett lahm :(

  1. #11
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von Art Vandelay Beitrag anzeigen
    Sodala, ich wollte mich nochmals bedanken.

    Ein Arbeitstag ist vergangen, es ist fast 21 Uhr mit dem Resultat,

    Es ist knapp vor 22o Uhr, mein Arbeitstag beginnt jetzt ...

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  2. #12
    Art Vandelay ist offline Neuer Benutzer
    Registriert seit
    20.12.2011
    Beiträge
    7

    Standard

    falls dich das tröstet - mir sind aufm nachhauseweg grad noch 2 dinge für andere kunden eingefallen, die ebenfalls morgen fertig werden müssen. ich häng auch noch 2 stunden an meinen bisherigen 12-stunden-tag dran. GRRRRRRRRRRRRRRR

    aber bald ich weihnachten und 3 wochen urlaub stehen bevor.

  3. #13
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    524

    Standard

    Zitat Zitat von Art Vandelay Beitrag anzeigen
    Auch hier ist die scheinbare "Spielzeug-Datenbank" mySQL um Welten voraus.
    Ganz im Ernst: dann nimm doch wieder MySQL. Man sollte immer das Tool nehmen welches den Job besser erledigt.

    Ich werde mich wohl mit dieser Lösung anfreunden. Und einen Schalter in den Shop einbauen, ob ich jetzt die Tabelle fulltext1 oder fulltext2 verwende, wobei ich immer eine verwende und die andere in der nacht im zuge des allgemeinen updates neu anlege.
    Warum benennst Du die Tabelle nicht einfach um? Da das in einer Transaktion läuft, wartet diese bis keine Zugriffe mehr stattfinden und die Anwendung kriegt von dem Switch gar nichts mit.

    Allerdings glaube ich, dass bei deiner Konfiguration irgendwas schief ist. Wir haben einen online Shop am Laufen der. mehrere 1000 Page Impressions pro Minute mit PostgreSQL abfackelt. Und das bei gleichzeitigen Schreibe- und Lesezugriffen.

    Die Standard-Konfiguration von Postgres ist (leider) vor allem für Systeme mit viel Last völlig ungeeignet.

    Möglicherweise stimmt ja auch mit der Hardware was nicht. Unter Windows könnte ich das Verhalten noch verstehen, da NTFS bei hoher Last wirklich das System ausbremst. Unter Linux würde ich das allerdings nicht erwarten.

    Möglicherweise ist MySQL auch so eingestellt, dass es die Daten gar nicht wirklich wegschreibt sondern nur so tut (fsync). Das könnte den Performance Unterschied schon erklären.

    Du kannst ja mal probehalber (!!!!!) den Parameter fsync auf off umstellen.

    Aber ACHTUNG: das kann zu Datenverlusten führen, wenn der Rechner mitten drin abschmiert. Wenn das aber die gleiche Performance liefert wie mit MySQL, dann ist das vermutlich einer der Gründe.
    Aber Nochmal die Warnung: man sollte kein Produktivsystem so laufen lassen. Zur Problemeingrenzung könnte es aber helfen.

    Mit Sicherheit solltest Du checkpoint_segments, work_mem und shared_buffers erhöhen. synchronous_commit = off könnte auch helfen.

    Ich kann das Buch PostgreSQL 9.0 High Performance nur wärmstens empfehlen.

    Wenn Du ein Produktivsystem mit PostgreSQL betreibst (vor allem einen Shop), musst Du Dich mit solchen Sachen auseinander setzen. Ein "Die Standard-Konfiguration wird schon passen" ist nicht die Richtige Herangehensweise.
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

  4. #14
    Art Vandelay ist offline Neuer Benutzer
    Registriert seit
    20.12.2011
    Beiträge
    7

    Standard

    Hallo!
    Ja, das mit der Standard-Konfiguration werde ich auf jeden Fall auch noch anschauen und optimieren. Ging sich halt jetzt nicht alles innerhalb eines Tages aus. Würde mich natürlich entsprechend freuen, wenn ich durch eine Konfigurationsänderung noch mehr Speed rausholen kann.

    Das Umbenennen der Tabelle wär genauso möglich, aber es ist sogar für mich einfacher, einfach den Tabellennamen des JOINS in der Suchabfrage mal auf fulltext1 oder fulltext2 zu wechseln. Das funktioniert schon und ich seh jetzt keinen Vorteil vom Umbenennen. (Ich bin mir auch nicht sicher, ob ein Umbenennen der Tabelle tatsächlich transaktionsfähig durchführbar ist, weil eigentlich hört sich das schon stark nach DCL und nicht nach DML an. Ob da also nicht sogar im Gegenteil irgendein Lock-Table notwendig ist?)

    Hardware ist alles OK - brandneuer Server, top Ausstattung. Und ich hatte bei mir lokal ja das selbe Problem. Die Probleme treten auch nur bei Massen-Updates auf. Sonst im normalen Betrieb gibts ja kein Problem. Ist nicht so, dass da zB so lächerliche Dinge wie Warenkorb-, Bestellungen-Operationen oder dergleichen nur den Funken eines Problems machen.

    Aber ich gebs zu - ich taste mich derzeit bei der postgres im Dunkeln durch den Raum, bis ich die Türe ins Helle finde. Da wär natürlich das Buch (Danke für den Tipp!) schon hilfreich, weil die Online-Doku ist für eine Suche nach einer Strategie absolut unbrauchbar. Alleine die Doku über die fulltext-Suche ist dermassen durcheinander und unstrukturiert, dass ich ohne zusätzlichen Quellen nix zum Funktionieren gebracht hätte.

  5. #15
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.055

    Standard

    Hast du gerade geschrieben, das du Tabellen auf eine RAM-Disk legst?

    Bitte bitte bitte geh wieder zurück zu MySQL und werde dort glücklich, bitte.
    Du hast überhaupt nicht vor, irgendetwas richtig zu machen - du bastelst einfach nur ein bischen rum und was irgendwie mal ein bischen schneller wird, geht dann produktiv.

    Ach und bezüglich Fulltext-Index. Der ist nicht dein Problem.
    Dein wirkliches Problem ist, das du völlig ohne Vorwissen an die Sache ran gehst und einfach mal herumprobierst.
    Mit Frust und Überstunden für dich und mit katastrophalen Folgen für deine Anwendung und Datenbank.

    Ok, genug gemeckert, du gehst zu MySQL und ich gehe schlafen.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  6. #16
    Art Vandelay ist offline Neuer Benutzer
    Registriert seit
    20.12.2011
    Beiträge
    7

    Standard

    So sind ernsthaft die Super-Moderatoren hier in diesem Forum?! Kurz mal sinnlose Kritik auf persönlicher, teils beleidigender Ebene in den Thread reinkacken, anstatt nur irgendwas produktives beizutragen oder etwas konkretes sagen, warum die Lösung doch nicht toll ist, obwohl sie zu 100% das Problem löst?

    Und ich mach mir auch noch die Mühe, das sogar noch extra genau zu beschreiben. Tolle Stimmung hier. Tolle Moderatoren!
    Geändert von Art Vandelay (21.12.2011 um 08:18 Uhr)

  7. #17
    Gisman ist offline Erfahrener Benutzer
    Registriert seit
    20.01.2006
    Ort
    Pfalz
    Beiträge
    790

    Standard

    Zitat Zitat von Art Vandelay Beitrag anzeigen
    ... obwohl sie zu 100% das Problem löst?
    Das glaube ich nicht, Tim
    Dein Problem liegt IMHO _nicht_ bei der Datenbank und auch nicht bei Postgres sondern bei der Anwendung selbst.
    Warum willst du überhaupt die Datenbank wechseln? Unter MySQL scheint ja alles nach Wunsch zu funktionieren?


    Zitat Zitat von Art Vandelay Beitrag anzeigen
    Warum ich die ganze Tabelle weghaue
    Das würde eigentlich gar nicht machen wollen, aber es kommt ein neues Feld im fütternden Select dazu, weshalb ich alles updaten muss. Ansonsten habe ich ursprünglich eh einen Trigger auf der Tabelle drauf gehabt, wobei sich das auch als doof herausgestellt hat, weil das auch bei jeder Preisänderung Alarm schlägt. Um den Trigger würde ich mich in weiterer Folge kümmern, weil sonst hab ich bei jedem Preisupdate wieder das selbe Problem, obwohl sich in der fulltext nicht mal was ändert.
    Jedenfalls lässt das wüstes Gebastel vermuten.

    Zitat Zitat von Art Vandelay Beitrag anzeigen
    Und ich mach mir auch noch die Mühe, das sogar noch extra genau zu beschreiben. Tolle Stimmung hier. Tolle Moderatoren!
    In der Tat. Ja.

    Gruß Uwe
    Have a lot of fun!

  8. #18
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    524

    Standard

    Zitat Zitat von Art Vandelay Beitrag anzeigen
    Das Umbenennen der Tabelle wär genauso möglich, aber es ist sogar für mich einfacher, einfach den Tabellennamen des JOINS in der Suchabfrage mal auf fulltext1 oder fulltext2 zu wechseln. Das funktioniert schon und ich seh jetzt keinen Vorteil vom Umbenennen.
    Wenn es im Code für Dich kein Problem ist dann hat die Lösung natürlich keinen echten Vorteil.

    (Ich bin mir auch nicht sicher, ob ein Umbenennen der Tabelle tatsächlich transaktionsfähig durchführbar ist
    Ja ist es. Alle Befehle bei Postgres (mit ein paar wenigen Ausnahmen wie CREATE/DROP DATABASE) sind transaktional.


    weil eigentlich hört sich das schon stark nach DCL und nicht nach DML an.
    DCL? Digital Command Language? Ich denke Du meinst DDL.


    Ob da also nicht sogar im Gegenteil irgendein Lock-Table notwendig ist?
    Ja, ein Lock ist notwendig so wie bei jedem Update. Aber das rename wartet einfach bis alle Zugriffe auf die Tabelle beendet sind. Wenn die Tabelle natürlich ständig abgefragt wird, dann ist die Lösung mit zwei Tabellen vermutlich einfacher - vor allem wenn es im Code keine Probleme macht.

    Die Probleme treten auch nur bei Massen-Updates auf.
    Ich würde bei den checkpoint/WAL Einstellungen anfangen. Vermutlich musst Du auch die VACUUM Einstellungen für die beiden Tabellen anpassen.

    Noch eine Frage: die INSERTs laufen schon alle in einer Transaktion, oder? Bei Massen-Updates auf keinen Fall mit auto-commit arbeiten!
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Frage Datenbanken auf anderen Server "umpolen"
    Von Karl der Heinz im Forum Allgemeines
    Antworten: 17
    Letzter Beitrag: 13.04.2012, 10:15
  2. Antworten: 7
    Letzter Beitrag: 03.02.2012, 09:58
  3. Frage ubuntu: postgres komplett deinstallieren für "frische" neuinstallation?
    Von kuekue im Forum Installation von PostgreSQL
    Antworten: 1
    Letzter Beitrag: 23.06.2009, 20:24
  4. Problem File "C:/Program" bestimmt ob den Server starten soll
    Von hretif im Forum Installation von PostgreSQL
    Antworten: 2
    Letzter Beitrag: 12.05.2009, 12:33
  5. PostgreSQL-Server im Netzwerk "finden"?
    Von cfi im Forum Allgemeines
    Antworten: 17
    Letzter Beitrag: 27.08.2008, 13:05

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum