Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Grosse Tabellen handeln. Abfragen optimieren

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von thomasfischer25, 16 Juli 2013.

  1. thomasfischer25

    thomasfischer25 Neuer Benutzer

    Hi Leute,

    Ich benutze einen Microsoft SQL Server 2012 um die Daten verschiedener Produkte zu speichern. Es besteht eine Tabelle, welche den Produktionsstatus des Produktes festhaelt. Hier sind alle moeglichen Start und End Termine festgehalten. Sobald ein solches Produkt aus der Produktion verschickt wird, wird im Feld "Versendet am" ein Datum eingetragen.

    Anschliessend werden solche Records nur noch fuer nachtraegliche Report-Zwecke verwendet. Damit wird die Tabelle aber immer grosser. Direkte Abfragen oder Abfragen ueber Views dauern jedoch immer laenger bis teils zum Timeout. Die meisten Views welche auf die Tabelle "zugreifen" haben eine Abfrage mit WHERE [Versendet am] IS NOT NULL oder eben WHERE [Versendet am] IS NULL.

    Wie loest man ein solches Problem?
    Meine Ideen waren entweder eine weitere Tabelle zu erstellen, in der alle versendeten Produkte landen sobald sie versendet wurden.
    Oder gibt es eine Moeglichkeit dem Server zu sagen, dass meistens nach [Versendet am] unterschieden wird und so die Optimierung irgendwie in eine Richtung zu leiten?!?!?!

    Vielen Dank!
     
  2. akretschmer

    akretschmer Datenbank-Guru


    Unter PG würde ich EXPLAIN befragen. Ich weiß nicht, ob M$SQL partielle Indexe kennt. Es kennt aber sicher Partitionierung, Du könntest also z.B. nach diesem Datum partitionieren. Wenn Du aber nach IS [NOT] NULL abfragst hat das auch nur begrenzten Wert.

    Ach ja: wie groß ist 'groß'?
     
  3. ukulele

    ukulele Datenbank-Guru

    Ich habe leider kaum Systeme mit irgendwo mehr als 10k Datensätzen aber ich würde erstmal überhaupt einen Index auf die Spalte Versendet_am legen, das sollte eigentlich schon einen großen Effekt haben.

    Bestimmte Datensätze in eine andere Tabelle zu "kopieren" halte ich für ganz fießen Fusch...
     
    Walter gefällt das.
  4. gurbelunder

    gurbelunder Datenbank-Guru

    Sollten die Indizes nicht den gewünschten Effekt erzielen, kannst du dich ja mal mit Materialized Views befassen ;)
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden