On-the-Fly-Abfrage- / Befehlsänderung

7

Ich bin für die Verwaltung einer Instanz von SQL Server 200x verantwortlich, die das Unglück hat, als Backend für eine schlüsselfertige Anwendung zu dienen, die mit einem ekelhaften Leistungsproblem geschrieben wurde. Es wird wiederholt das Muster der Vorbereitung eines statischen Cursors verwendet, für den nur die ersten Einträge von verwendet werden, und dies dauert häufig mehrere zehn Millisekunden. Es gibt Tausende dieser Abfragen in einem kontinuierlichen Stream.

Die Wahrheit ist, dass aufgrund des merkwürdigen Designs der Anwendung die Datenintegrität bei keiner dieser Abfragen ein Problem darstellt. Die Tatsache, dass sie statisch sind, ist miserabel, da die Leistung in diesem Fall etwa dreißigmal schneller wäre dynamisch.

Nachdem ich mich wochenlang mit dem Verkäufer befasst habe, komme ich nicht weiter. Die Wahrheit ist alles, was ich wirklich tun muss, ist einen Parameter in der Art und Weise zu ändern, wie die Anwendung sp_cursorprepexec verwendet. Bei Bedarf kann ich dies sogar global auf dem gesamten Server tun.

Ich schaue mir alle Lösungen an, ob sie eine Funktion in SQL Server 200x verwenden, die ich nicht finden konnte, und schreibe eine kleine App, die sich zwischen SQL Server und dem Client befindet und die Daten ändert (obwohl ich Ich würde mich nicht darauf freuen, herauszufinden, wie man mit dem TDS-Protokoll so umgeht, oder sp_cursorprepexec irgendwie umzubenennen und durch einen Wrapper zu ersetzen.

Der Himmel ist das Limit.

(Zu Ihrer Information, wir führen gerade SQL Server 2005 aus, aber wenn es einen überzeugenden Grund gibt, das zusätzliche Geld für das Upgrade der Lizenz auszugeben, kann dies passieren.)

Kaganar
quelle

Antworten:

8

Dies ist kein technisches Problem, sondern ein Vertragsverwaltungsproblem. Frig nicht mit der schlüsselfertigen Anwendung. Der Anbieter erhält eine Karte ohne Haftentzug, mit der er seine Vereinbarung zum Servicelevel ignorieren kann.

Entweder,

  1. Werfen Sie Hardware auf das Problem (SSDs, größerer Server, mehr RAM usw.) oder

  2. Sprechen Sie mit demjenigen, der die Beziehung zu Ihrem Lieferanten verwaltet. Übertragen Sie die Verantwortung für die Systemleistung wieder auf den Anbieter und / oder

  3. Untersuchen Sie den Business Case für den Wechsel zum Produkt eines Mitbewerbers.

Das Spielen mit der Anwendung ist das Letzte, was Sie tun sollten, insbesondere wenn die Beziehungen zum Anbieter angespannt werden.

Sie müssen sicherstellen, dass Ihr Management weiß, dass das Leistungsproblem auf die Architektur des Systems zurückzuführen ist. Holen Sie sich das irgendwie schriftlich; Schreiben Sie einen Bericht, in dem das Problem und die Gründe, aus denen Sie es nicht einseitig beheben können, beschrieben werden. Stellen Sie sicher, dass es per E-Mail an alle Ihre internen Stakeholder gesendet wird und Sie eine Aufzeichnung darüber haben, dass es gesendet wurde. Vereinbaren Sie ein Treffen, um das zu verfolgen und zu erklären. Das bedeckt deinen Arsch - das ist ziemlich wichtig, wenn der Verkäufer (oder die Partei, die den Kauf autorisiert hat) versucht, politisch zu werden.

Eskalieren Sie jetzt das Problem mit Ihrer IT-Verwaltungsfunktion und stellen Sie sicher, dass es gut dokumentiert ist. Da Sie die Hauptursache des Problems verstehen, sollte dies kein Problem sein. Der Anbieter hat Ihnen ein System verkauft, das nicht für den Zweck geeignet ist. Es ist jetzt ein Managementproblem. Zünde das blaue Touchpapier an und trete zurück.

Wenn Sie dies bereits getan haben, haben Sie alles getan, was Sie tun können, ohne die Anwendung selbst zu beeinträchtigen. Auch hier kann ich das nicht stark genug sagen: Tun Sie nichts mit der Anwendung, die das SLA ungültig machen könnte.

ConcernedOfTunbridgeWells
quelle
Amen dazu.
Mark Storey-Smith
1
Ich mag diese Antwort wirklich nicht, aber sie ist die richtige. Ich komme aus einer Welt der Softwareentwicklung, in der ich Probleme mit meinem eigenen technischen Fachwissen beheben kann, das andere Parteien ablehnen. Ich bin jetzt in einer Welt, in der ich nicht kann, und es war in mancher Hinsicht eine großartige Erfahrung.
Kaganar
@Kaganar - das sind die Freuden von Softwarepaketen. Leider ist Ihre SLA die einzige Hebelwirkung, die Sie gegenüber dem Anbieter haben, und Sie können sie nicht gefährden, indem Sie mit dem System friggen. Sie haben mein Mitgefühl, aber das liegt wirklich nicht in Ihrer Hand.
ConcernedOfTunbridgeWells