INDEX mit FOR ! deleted()

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

INDEX mit FOR ! deleted()

Beitrag von Koverhage »

Hallo Hubert,

hoffe Du hast nichts dagegen das ich das hier hin verschiebe.

> (INDEX mit FOR ! deleted() ) ... ich weiß
> gar nicht warum
> ich das nicht häufiger verwende funktioniert
> wirklich klasse.
>

ist mir nicht klar für was Du das verwendest bzw. was für Vorteile das haben soll.

Mein Verständnis:

Der gelöschte Satz erscheint nicht mehr im Index.

Bringt das Geschwindigkeitsvorteile oder welche Vorteile hat das ?

Ohne Index mit FOR !deleted()
Wenn Deleted on wird der Satz ja auch z.B. im Browse nicht angezeigt
Beim Suchen wird er gefunden,
man kann einen recall machen


Klaus
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hi,

bist du sicher das ein als gelöscht makierter Satz beim Dbseek gefunden wird, wenn du

Set Deleted On enthalten ist. ??
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Koverhage »

Meinte natürlich wenn deleted auf Off gesetzt ist
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: INDEX mit FOR ! deleted()

Beitrag von brandelh »

Koverhage hat geschrieben: ist mir nicht klar für was Du das verwendest bzw. was für Vorteile das haben soll.

Mein Verständnis:

Der gelöschte Satz erscheint nicht mehr im Index.

Bringt das Geschwindigkeitsvorteile oder welche Vorteile hat das ?
Hallo Klaus,

ich weiß jetzt gar nicht woher du das 'verschoben', aber du darfst natürlich zitieren wie und wo du willst ;-)

Viele Wege führen nach Rom ...

Wenn ich dem Anwender zeigen will, dieser Satz hat eine Löschmarkierung die er z.B. aufheben kann, dann darf ich natürlich die INDEX Klausel nicht verwenden, genauso wie set deleted diese Sätze nicht überspringen darf.

Wenn ich im Programm selbst ein Recycling mache, ist es mit dem Index auch nicht so einfach, da ja diese Sätze aussortiert werden - set order to 0 macht sie zwar sichtbar, aber noch lange nicht leicht und schnell findbar.
Ein zweiter Index FOR deleted() wäre wohl mehr Aufwand als Nutzen.

Nur wenn ich im Prinzip SET DELETED ON Verhalten haben möchte, dann ist der INDEX deshalb schneller, weil er die deleted Sätze erst gar nicht anspringt. Sonst wird der Satz angesprungen aber ignoriert und beim nächsten weitergemacht.

Solange wenige gelöschte Datensätze enthalten sind wird man wohl kaum einen Unterschied feststellen. Wenn aber viele Datensätze gelöscht sind und ein Browse sich dauernd da durcharbeiten muss, bringt das schon einen Vorteil. Ich habe das nun in einem WEB-Programm verwendet, indem ich die Löschfunktion integriert habe. Dort ist es immer wichtig in Bruchteilen einer Sekunde die Ergebnisse zu haben und der Rest der Bedingungen passte auch. Somit habe ich die Index Methode verwendet.
Gruß
Hubert
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Koverhage »

Nur zum besseren Verständnis. Ich arbeite generell mit set deleted on, nur in Ausnahmefällen mit set deleted off.

Es ist also besser wenn ich jeden Index um .and. !deleted() erweitere ?

Werde das mal bei ein oder zwei Dateien machen, um die Auswirkungen zu sehen.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Koverhage »

Hallo,

habe jetzt mal die Indexerstellung für eine Datei um FOR !deleted() erweitert.

Obwohl nur 1 Satz von 970 gelöscht ist, scheint es so, das die Suche in einem Browse wesentlich schneller ist.
Antworten