je voller desto langsamer suchen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

steffn
***
Beiträge: 92
Registriert: So, 16.11.2008 15:02

je voller desto langsamer suchen

Beitrag von steffn »

Hallo und hilfe!

Meine Tabelle mit Wörtern wird immer voller und das Suchen mit 'searchdescriptor' nach einzelnen dauert immer länger, egal wie klein der Suchbereich auch ist. Und das regt mich sehr auf.

In den Zellen ist je ein Wort.
Die Spalten sind alphabetisch sortiert.
Je voller ein Blatt in Calc ist, desto länger dauert das Suchen nach einem Wort in einer Zelle.
Je höher der Index der Zeile der Zelle mit dem Wort ist, desto länger dauert das Suchen danach.

Könnte mir jemand bitte erklären, wieso das so ist?
Und hat jemand Tipps, wie man die Suchzeit verringern kann?

Meine einzige Idee warum das so ist, lautet: Open Office greift sich alle beschriebenen Zellen, was so lange dauert.
Meine einzige Idee das zu umgehen ist, den Suchbereich in eine leere Datei zu kopieren und dann dort zu suchen, aber ... das will ich im Moment noch nicht akzeptieren.
oo4.1.2 in winxp pro mit sp3
steffn
***
Beiträge: 92
Registriert: So, 16.11.2008 15:02

Re: je voller desto langsamer suchen

Beitrag von steffn »

alte Idee,
wieder augegriffen,
zweiter Versuch,
bitte um Unterstützung
oo4.1.2 in winxp pro mit sp3
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: je voller desto langsamer suchen

Beitrag von F3K Total »

Hallo Steffn,
nach meiner Kenntnis kann man den Searchdescriptor auch auf einen "CellRange" anwenden:

Code: Alles auswählen

sub search_in_range

osheet = thisComponent.Sheets(0)'erste Tabelle
oRange=osheet.getCellRangebyName("A1:N600")'Zellbereich
oSuche = oRange.createSearchDescriptor()
oSuchstring="600"

   With oSuche
      .setSearchString(oSuchstring)
   End With
   oSuchErg = oRange.findall(oSuche)
   oSuchErgEnum=oSuchErg.createenumeration
   while oSuchErgEnum.hasmoreelements
   oEinzelSuchErgebnis=oSuchErgEnum.nextelement
   msgbox "Der Suchbegriff '"+oSuchstring+"' wurde in Zelle "+oEinzelSuchErgebnis.AbsoluteName+" gefunden"
   wend

End sub
Gruß R
steffn
***
Beiträge: 92
Registriert: So, 16.11.2008 15:02

Re: je voller desto langsamer suchen

Beitrag von steffn »

Hallo F3K Total.

Hast Du
steffn hat geschrieben:egal wie klein der Suchbereich auch ist
bei Deiner Antwort bedacht, oder hast Du das übersehen?
oo4.1.2 in winxp pro mit sp3
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: je voller desto langsamer suchen

Beitrag von DPunch »

Aloha
steffn hat geschrieben:Hast Du (...) bei Deiner Antwort bedacht, oder hast Du das übersehen?
Möglicherweise hat er es bewusst aussen vor gelassen, weil die Größe des Suchbereichs natürlich eine Rolle spielt, je kleiner desto schneller.

Vielleicht solltest Du mal zum Besten geben, was Du wo wie suchst.
steffn
***
Beiträge: 92
Registriert: So, 16.11.2008 15:02

Re: je voller desto langsamer suchen

Beitrag von steffn »

Hallo DPunch.

Ich habe den Sinn darin nicht gefunden, jemandem, der behauptet, den Suchbereich klein zu halten, zu empfehlen, den Suchbereich zu verkleinern.

Was:
Ein Wort in einer Spalte mit jeweils einem Wort pro Zelle.
Wo:
In einem Bereich in einer Spalte auf einem Tabellenblatt in Calc.
Wie:
Keine Ahnung, was Du mit "wie" meinst.
oo4.1.2 in winxp pro mit sp3
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: je voller desto langsamer suchen

Beitrag von komma4 »

steffn hat geschrieben: dauert immer länger, egal wie klein der Suchbereich auch ist.
Dann mal konkret:

Welche OOo Version?
Welches Betriebssystem?
Welches Speicherformat?

Welcher Suchbereich?
Mit welchem Code?

Ich kann hier keine Geschwindigkeitsprobleme bei einem 14000-Zellen grossem Bereich feststellen.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: je voller desto langsamer suchen

Beitrag von DPunch »

Aloha
steffn hat geschrieben:Keine Ahnung, was Du mit "wie" meinst.
Naja, "wie" eben.
Mit einem Makro? Wie sieht das Makro aus? Wie definierst Du den Suchbereich? Suchst Du auch tatsächlich in diesem Bereich? etcpp

In einem Tabellenblatt, in dem ich die ersten 201 * 10002 Zellen beschreiben lassen habe mit unterschiedlichen Strings (201 Spalten * 10002 Zeilen = 2 Mio beschriebene Zellen), dauert die Suche nach dem in Zelle "EU5001" (Spalte 151) stehenden String knapp 3500 Ticks, wenn ich die Suche über das ganze Blatt laufen lasse.
Lasse ich nur in der Spalte "EU" suchen, dauert das Ganze noch knapp 250-300 Ticks (Faktor >10).
Grenze ich die Suche auf den Bereich "EU2500:EU7500" ein, dauert die Suche immer <250 Ticks.
Das heisst, die Suche braucht selbst bei 10000 beschriebenen Zeilen nichtmal eine halbe Sekunde, wenn ich sie auf eine einzelne Spalte beschränken kann.

Das widerspricht in vollem Umfang Deiner Aussage
egal wie klein der Suchbereich auch ist
und lässt auf eine falsche Herangehensweise schliessen.

Daher ist die essenzielle Frage: "wie" suchst Du?
Antworten