Re: Indexe beissen sich? (Dau-Frage)

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: Alexander Bierig (dusollstkeine.spam_at_verschicken.de)
Date: 04/20/04


Date: Tue, 20 Apr 2004 02:13:10 +0200


"Elmar Boye" <ElmarB@gmx.net> schrieb im Newsbeitrag
news:c5tebi$5eoad$1@ID-28695.news.uni-berlin.de...

Guten Morgen Elmar,

> > Dual Xeon: 8.00.0760; Notebook: 8.00.0760;
>
> > SQL-7: 7.00.0623
>
> Das ist die RTM Version, also keine Servicepacks!

und ich war überzeugt, dass ich auch da zuschaute, wie die SQL-Skripts
ausgeführt wurden. Nun denn, dann werde ich das nachholen müssen

> dann fehlt noch http://support.microsoft.com/?kbid=815495
> MS03-031: Cumulative Security Patch for SQL Server
>
> Zusätzlich zu den Sicherheitsfixes sind da einige andere
> Probleme behoben, die nach SP3 aufgetaucht sind.
> Noch einen Schritt weiter geht:
> http://support.microsoft.com/?kbid=821334
>
> Darin sind auch diverse Fixes enthalten, die direkt
> oder indirekt zu Deinem Problem beitragen könnten.

ich habe MS doch dahingehend richtig verstanden, dass der zweite FIX
kumulativ zum ersten genannten ist?
Weil die Beschreibung beim Ersten hat mich doch das kalte Grausen geleert
("Wenn Sie den Fix eingespielt haben,...wird Passwort verlangt. Die MSGBox
können Sie nicht schliessen...spielen Sie den Fix xyz ein)

Somit habe ich den zweiten Patch aufgespielt und bekomme die Version 859 bei
dem Dual Xeon

ich sollte vielleicht darauf hinweisen, dass der SQL-Server auf dem
Dual-Xeon ein englischer Enterprise SQL-Server ist.

> >>> sslrs.Open "select * from ssl_pfteam order by pfteam_nr, ssl_nr",
> >>> sslconn, , , adAsyncFetch
> >>
>
> ich hoffe, Du bist mittlerweile ausgeschlafen ;-))
>
> > wieso vertragen die Kursorform und -Lokation sich nicht.?
>
> adUseClient heisst immer auch adOpenStatic.

Wo Du es sagst - ich habe das mal gelesen und (leider) vergessen

>
> > Was stört an "*" im select from...?
>
> "*" heisst immer alle Spalten, und selbst wenn Du alle Spalten
> der heutigen Tabellenstruktur ansprechen solltest, ist es guter
> Stil die Spaltenliste anzugeben.

Ok, das ist ein Argument - das mit der Umsetzung wird das Problem sein.(mein
kleines persönliches)

> So nebenbei gehört da auch eine WHERE Klausel hin, wenns
> mehr als nur Testcode ist. Kein Benutzer schaut sich (nur)
> 7500 Datenzeilen an.

auch wenn Du es nicht glaubst - wir tun es.

>
> BTW: ADO kennt auch eine Sort Eigenschaft. Und wenn Du
> ohnehin alles runterlädst, kannst Du auch lokal sortieren.

Schon, aber wieso das nicht den schnellen Server machen lassen - aber ist
nicht das Problem.

> Da eine für vollständige Anleitung hier kein Raum ist:
> Mache es mal lieber andersrum: Verwende weniger und lasse mal
> den Indexoptimierungsassistenten über die von Dir gewählten
> Abfragen laufen.
>

der bot ja bei der o.a. Abfrage die Felder Pfteam_nr,ssl_nr als Index
gruppiert an.

> Irgendwie drängt sich mir der Verdacht auf, die Tabelle hat
> einen Schuss.
> Hast Du mal DBCC CHECKTABLE respektive DBCC CHECKDB ausgeführt?

checktable ssl_pfteam: Keine Fehler
checkdb with option PHYSICAL_ONLY: Keine Fehler
checkdb Repair_Rebuild ohne Optionen: Kein Fehler

> > Die Auswirkung von MAXOP kann ich Dir morgen abend mitteilen.
Mit und ohne MAXDOP(1) gibts bei obiger Abfrage mit und ohne Indexe keine
Paralelle Abfragen.

> Evtl. poste auch mal den Abfrageplan. Kommt da überhaupt ein
> "Parallelism" Hinweis drin vor.

Nachdem ich den Index des Optimieres benutzt habe gabs folgenden Plan:
clustered Index Scan(Objec:([GuK
Kostenanalyse].[dbo].[ssl:pfteam].[ssl_pfteam1]),ordered forward)

dabei ist ssl_pfteam1 der erstelle Index.

Dafür konnte anschliessend das Gegenstück zu dieser o.a. Abfrage NICHT mehr
schreiben!

Also habe ich alle Indexe entsorgt.
Obige Abfrage liest und liest und das Gegenstück:

        Set sslrs = sslconn.Execute("delete from ssl_pfteam_backup", ,
adCmdText)
        Set sslrs = sslconn.Execute("insert into ssl_pfteam_backup select *
from ssl_pfteam", , adCmdText)
        Set sslrs = sslconn.Execute("delete from ssl_pfteam", , adCmdText)
        Set rspfssl = mdbpfssl.OpenRecordset("ssl_pfteam")
        sslrs.CursorLocation = adUseClient
        sslrs.CursorType = adOpenStatic
        sslrs.LockType = adLockBatchOptimistic
        sslrs.Open "select * from ssl_pfteam where 1=2", sslconn, , ,
adAsyncFetchNonBlocking
        With rspfssl
            MoveFirst
            While Not .EOF
                sslrs.AddNew
                For Y = 0 To .Fields.Count - 1
                    sslrs.Fields(Y) = .Fields(Y)
                Next
                If Not .EOF Then .MoveNext
            Wend
        End With
        sslrs.UpdateBatch
        sslrs.Close
        Set sslrs = Nothing

kann auch Schreiben.

folgender Beispiel-Code verursacht: Merge/Join Paralelismus Index Scan
und bei Option Maxdop(1) nur: Merge Index Scan

insert into sa_aktuellefins (fahrgestellnr,sa_art,sa_code)
select k.fahrgestellnr as KnownFin,'S' as saart,'NIX' as codeid from
known_fins as k
left join sa_aktuellefins as saf on saf.fahrgestellnr=k.fahrgestellnr
where saf.fahrgestellnr is null

Vielen Dank für Deine Mühen.

Mein Problem ist, dass ich auf den Netzwerk dieser Firma keinen NEWs-zugang,
wie überhaupt keiner dort, erhalte wegen Sicherheitsgedanken.

Damit muss ich Deine Frage erst hin- und das Ergebnis zurücktransportieren.

Viele Grüsse aus dem Kalten Süden

Alex.

-- 
Wegen der Berge von Spam:
die Emailadresse lautet
alexander.at.taxi.minus.stuttgart.dot.de


Relevant Pages

  • Re: Problem mit einer Abfrage unter SQL-Server CE
    ... drop index MITARBEITERRECHTE.iFIRMENID_MITARBEITERRECHTE ... Fehler beim Analysieren der Abfrage. ...
    (microsoft.public.de.sqlserver)
  • Problem mit einer Abfrage unter SQL-Server CE
    ... drop index MITARBEITERRECHTE.iFIRMENID_MITARBEITERRECHTE ... Fehler beim Analysieren der Abfrage. ...
    (microsoft.public.de.sqlserver)
  • Problem mit einer Abfrage unter SQL-Ce
    ... drop index MITARBEITERRECHTE.iFIRMENID_MITARBEITERRECHTE ... Fehler beim Analysieren der Abfrage. ...
    (microsoft.public.de.german.entwickler.dotnet.datenbank)
  • Re: Logtabelle mit vielen Werten
    ... Weiters gibt es einen Index auf time_stamp und variable. ... Datensätze von ca. 1000 verschiedenen Variablen und die Abfrage dauert 20 bis 40 Sekunden oder noch länger. ... Weiters hab ich mir gedacht, z.B. eine 2te Tabelle anzulegen, in der ich alle ... Wenn du einen von den beiden CI's anlegst, geht auch das Löschen nach Zeitstempel schnell, weil der die erste Spalte im Index ist. ...
    (microsoft.public.de.sqlserver)
  • Re: create index
    ... Ich habe über eine Abfrage in Access einen Index erstellt: ... Mit der Anweisung ... >dauerhaft in der Tabelle anzulegen. ...
    (microsoft.public.de.access)