index auf Arbeitsrechner anlegen !?!

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

Moderator: Moderatoren

xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

index auf Arbeitsrechner anlegen !?!

Beitrag von xbaseklaus »

Guten Morgen,

ist es sinnvoll die NTX Dateien auf dem Arbeitsrechner anzulegen in Bezug auf die Verarbeitungsgeschwindigkeit ?

Vorgabe:

von Clipper nach xbase portiertes Programm ( verwende hauptsächlich die standart clipper befehle )

Das Pogramm ist auf einem NAS - und wird von dort auch gestartet. 3 Arbeisrechner greifen darauf zu , wobei das Programm immer nur auf einem PC läuft ( ES ist nicht NETZWERKFÄHIG )

Jetzt meine Frage in 'Bezug auf die Verarbeitungsgeschwindigkeit . Bringt es etwas, wenn die NTX Dateien auf dem Arbeitsrechner erstellt werden !

Wenn ja wie kann ich das am sinnvollsten im CODE ändern damit ich so wenig Änderungsaufwand habe als möglich:

welche Befehle sind dann zu verwenden:

... set path to

meine INDEX Dateien werden im Programm mit INDEX ON angelegt

mfg Klaus
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von georg »

Hallo, Klaus -


wenn Du nur mit einem Rechner arbeitest, ist das sinnvoll und richtig.

Arbeitest Du in einem Netzwerk, dann ist es (fast immer) kontraproduktiv, da der lokale Index nur von Deinem lokalen Programm gepflegt wird, bzw. gepflegt werden kann. Datensätze, die von anderen Arbeitsplätzen in die DBF-Datei geschrieben werden, tauchen in Deinem Index dann nämlich nicht auf.

Geht es aber nur um die Abfrage von Daten, und es wird weder hinzugefügt, geändert, oder gelöscht, dann kann ein lokaler Index Sinn machen.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von Manfred »

Hm,

auch wenn die Software nur auf einem PC gleichzeitig laufen kann, es muß ja bei jedem Start der Index neu aufgebaut werden. Meinst Du, das es dann trotzdem so viel Zeit erspart? Wenn es kleine Indexdateien sind, dann dürfte der Vorteil lokal eh nur gering sein. Aber wenn es große Dateien sind, dann benötigt der Aufbau ja auch jedesmal seine Zeit.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von Tom »

Hallo, Klaus.

Lokale Indexdateien sind etwas schneller, vor allem natürlich bei der Erzeugung. Arbeiten jedoch mehrere Arbeitsplätze mit der gleichen Tabelle und aktualisieren sie diese, aktualisieren sie auf diese Weise immer nur ihre lokalen Indexdateien. Das würde zwangsläufig zu Dateninkonsistenzen und möglicherweise zu Korruptionen führen, da der eine lokale Index nicht die Änderungen reflektieren würde, die der andere enthält. Man müsste also ständig re-indexieren, um das in den Griff zu bekommen, was auch nur vorübergehend helfen würde. Keine gute Idee. Bei temporären Auswertungsdateien kann man so agieren. Da würde ich aber nicht mit SET PATH oder SET DEFAULT arbeiten, sondern das lokale Verzeichnis in einer Variablen oder einer Get-Set-Funktion verfügbar machen und jeweils direkt verwenden:

Code: Alles auswählen

USE xTable ALIAS xy NEW
INDEX ON xField TO (MyLocalIndexPath()+'xTable')
Herzlich,
Tom
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von xbaseklaus »

OK , da hab ich mal wieder nicht weit genug gedacht.

Aber die IDEE von Tom ist ganz gut , das werde ich so einbauen .

Ein anderer Ansatzpunkt wäre vielleicht - die Index dateien beim beenden des Programmes vom Arbeitsrechner auf das NAS zu kopieren
und diese Dateien beim Start auf einem anderen PC vom NAS auf den ArbeitsPC zu kopieren ... müsste ich mal testen was schneller ist !

Die Zeit für das kopieren der Dateien vom Arbeitsrechner auf das NAS wäre auf jeden Fall nicht störend !
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von brandelh »

Wenn DBF und NTX in getrennten Verzeichnissen liegen kann man mit SET PATH nur Verwirrung stiften.

Code: Alles auswählen

USE (cPathDBF+"Dateiname") ... 
INDEX ON ... TO (cPathNTX+"Dateiname") ... 
zeigt sofort was los ist.

GESCHWINDIGKEIT !

hast du SET EXCLUSIVE ON gesetzt ? Xbase++ öffnet standardmäßig SHARED und das ist VIEL LANGSAMER :!:

Ich habe auch noch so ein Programm und das liegt auf der NAS (damit ich von verschiedenen PCs abfragen kann ...).
Hierbei nutze ich aber eine CMD Datei um die Daten (DBF / NTX und EXE / DLL etc.) in ein lokales Verzeichnis zu spiegeln (Robocopy kopiert nur die Unterschiede).
So arbeite ich LOKAL auf einem PC mit i5 und SSD - HIER GIBT ES KEINE WARTEZEITEN :!: - danach kopiere ich es zurück.
Das geht automatisch - wobei ich des Zurückschreiben mit STRG+C auch abbrechen könnte, wenn die Eingabe fehlerhaft war (man ist ja nicht immer top fit ;-) ) ...

Code: Alles auswählen

@echo off
title Haushalt von NAS holen und lokal ausführen.
echo.
echo Daten von NAS holen ... (Strg+C unterbricht)
echo.
pause
robocopy \\MyNAS\Freigabe\Pfad d:\temp\Pfad /mir /FFT /xd $recycle.bin recycler "System Volume Information"
echo.
echo lokal starten ... (Strg+C unterbricht)
echo.
pause
c:
cd d:\temp\Pfad
myExe.exe
cls
echo.
echo Daten nach NAS zurück speichern ... (Strg+C unterbricht)
echo.
pause
robocopy d:\temp\Pfad \\MyNAS\Freigabe\Pfad /mir /FFT /xd $recycle.bin recycler "System Volume Information"
cls
:ende
echo.
echo Ende
echo.
pause
Ich habe ein Synologic 411slim, der Prozessor der NAS mit 2,5" Platten.
Man kann es auch direkt von dort starten, aber das dauert ab und zu etwas beim Speichern. LOKAL macht mehr Spaß.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von brandelh »

PS: man muss natürlich sicherstellen, dass das nicht zwei PCs gleichzeitig so machen 8)
Gruß
Hubert
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von xbaseklaus »

brandelh hat geschrieben:PS: man muss natürlich sicherstellen, dass das nicht zwei PCs gleichzeitig so machen 8)
Genau, aber das ist das Problem bei dieser Lösung !

Das NAS versorgt 2 unterschiedliche Gebäude ... und es kann durchaus sein das 2 Benutzer zur gleichen Zeit versuchen auf das Programm zuzugreifen .

Es müsste IDIOTEN SICHER SEIN , D.H. erst wenn das Programm an einem ARBEITSPLATZ nicht mehr verwendet wird und die daten komplett zurückgespeichert sind
soll es wieder benutzt werden können ! [-X
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von brandelh »

In diesem Fall muss zumindest eine DBF auf dem NAS bleiben, z.B. eine die man normal nicht benötigt,
diese wir dann EXCLUSIVE geöffnet und das Programm muss das abfangen:

Code: Alles auswählen

USE (cNasPfad+"LOG.DBF") EXCLUSIVE
if NETERR()
   msgbox("Programm wird schon verwendet !")
   quit
endif
Was für ein NAS habt Ihr denn ?
Gruß
Hubert
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von xbaseklaus »

brandelh hat geschrieben:
Was für ein NAS habt Ihr denn ?
Ein ganz einfaches von CnMemorry, ist auch schon älter ( 2 x 2TB im RAID 1 verbund , Gigabit )
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von brandelh »

In dem Falle ist es wirklich besser einen einfachen Bürorechner mit I3 oder dem vergleichbaren Pentium (also kein alter Stromfresser) hinzustellen.
So habe ich mir einen gebaut der mit 30 Watt auskommt (inkl. SAT-S2 Karte als Videorecorder) und die Dateien zur Verfügung stellt.
Der hat SSDs und Win7 Pro (darauf kann ich mich mit Remotedesktop anmelden und die Programme von unterwegs starten) und ist Welten schneller als wenn die DBF auf dem NAS liegt.

Es gibt natürlich auch wirklich schnelle NAS, da ist man aber auch bei 700 Euro, mein "Server" hat bei der Aufrüstung von AMD X2 und mit SSD keine 500 gekostet.
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von Tom »

Hallo, Klaus.

Du schreibst erst, dass das Programm nicht netzwerkfähig ist, und dann wieder, dass durchaus versucht werden kann, von zwei Arbeitsplätzen zugleich darauf zuzugreifen. Ich denke, Du solltest Dir das ganze Gedödel mit lokalen Indexdateien wirklich sparen, zumal dies keinen großen Geschwindigkeitsgewinn erzeugen wird, die Daten alle im Netz lassen und die Software entsprechend absichern. Ob und in welcher Höhe ein möglicher Geschwindigkeitsgewinn eintritt, kannst Du ja leicht ermitteln, indem Du einfach mal beides ausprobierst.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von brandelh »

Mein NAS mit 1,66 GHZ Marvel Kern ist nicht die Rakete, solange man einzelne Datensätze schreibt, dauert es etwa 1 Sekunde fürs Schreiben bis das nächste GET verfügbar wird.
Seltsamerweise sind GUI Anwendungen aber deutlich schneller ...

Das erwähnte "Ein ganz einfaches von CnMemorry," ist wohl nur eine Festplatte mit Netzwerkerweiterung, das kann schon zäh werden.
Wenn man aber z.B. Browser oder so einsetzt, dann ist alles aus.
Gruß
Hubert
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von xbaseklaus »

DANKE erstmal an alle für die Denkanstöße :banghead:

Eine Frage hätte ich da noch die zum dem Thema NAS passt:

Gibt es eine Möglichkeit die SICHERHEITSWARNUNG von Windows 7 zu unterdrücken beim Starten der EXE Datei vom NAS ?

mfg
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von AUGE_OHR »

xbaseklaus hat geschrieben:Ein anderer Ansatzpunkt wäre vielleicht - die Index dateien beim beenden des Programmes vom Arbeitsrechner auf das NAS zu kopieren
und diese Dateien beim Start auf einem anderen PC vom NAS auf den ArbeitsPC zu kopieren ... müsste ich mal testen was schneller ist !
warum willst du überhaupt etwas hin-her kopieren ?
Es müsste IDIOTEN SICHER SEIN ...
auf einem PC installieren und per Remote Desktop zugreifen ... als wenn EINE Person vor dem PC sitzt.
gruss by OHR
Jimmy
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2121
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 30 Mal
Danksagung erhalten: 72 Mal

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von Werner_Bayern »

xbaseklaus hat geschrieben:Gibt es eine Möglichkeit die SICHERHEITSWARNUNG von Windows 7 zu unterdrücken beim Starten der EXE Datei vom NAS ?
Internetexplorer / Internetoptionen / Sicherheit: Vertrauenswürdige Sites oder lokales Intranet das NAS mit aufnehmen.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von brandelh »

Also bei mir wird auch \\NAS\... als "außerhalb des lokalen Netzwerkes" ausgegeben, daran ändert auch die IP in den vertrauenswürdigen Sites nichst :?
Gruß
Hubert
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von xbaseklaus »

brandelh hat geschrieben:Also bei mir wird auch \\NAS\... als "außerhalb des lokalen Netzwerkes" ausgegeben, daran ändert auch die IP in den vertrauenswürdigen Sites nichst :?
JA das stimmt , die Sicherheitswarnung kommt trotzdem :roll:
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2121
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 30 Mal
Danksagung erhalten: 72 Mal

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von Werner_Bayern »

xbaseklaus hat geschrieben:
brandelh hat geschrieben:Also bei mir wird auch \\NAS\... als "außerhalb des lokalen Netzwerkes" ausgegeben, daran ändert auch die IP in den vertrauenswürdigen Sites nichst :?
JA das stimmt , die Sicherheitswarnung kommt trotzdem :roll:
Habs gerade genau so nochmal bei mir getestet, erst kommt die Sicherheitsabfrage, dann gehe ich unter Internetoptionen, vertrauenswürdige Sites, gebe die IP unseres NAS ein, klicke auf "für Sites dieser Zone ist eine Serverüberprüfung erforderlich", damit das Häkchen weg ist und dann auf hinzufügen. Ab dann ist die Sicherheitswarnung weg!
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2121
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 30 Mal
Danksagung erhalten: 72 Mal

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von Werner_Bayern »

brandelh hat geschrieben:Also bei mir wird auch \\NAS\... als "außerhalb des lokalen Netzwerkes" ausgegeben, daran ändert auch die IP in den vertrauenswürdigen Sites nichst :?
Alternativ mal testen:
Dateianhänge
nas.png
nas.png (58.74 KiB) 9542 mal betrachtet
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von brandelh »

muss ich mal prüfen, dieses Fenster habe ich schon mal gesehen, aber mein Rechner ist "neuer" ... eventuell habe ich das bei diesem vergessen.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von brandelh »

das war es, mein "lokales Intranet" war automatisch ermittelt worden und das hat nicht funktioniert.
Nach dem Schalter geht jetzt alles super :!: =D>
Gruß
Hubert
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von xbaseklaus »

Werner_Bayern hat geschrieben: Alternativ mal testen:
Genau , das wars. VIELEN DANK :blob8: :D
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2121
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 30 Mal
Danksagung erhalten: 72 Mal

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von Werner_Bayern »

Bitte. :sunny:
es grüßt

Werner

<when the music is over, turn off the lights!>
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: index auf Arbeitsrechner anlegen !?!

Beitrag von xbaseklaus »

brandelh hat geschrieben:In dem Falle ist es wirklich besser einen einfachen Bürorechner mit I3 oder dem vergleichbaren Pentium (also kein alter Stromfresser) hinzustellen.
So habe ich mir einen gebaut der mit 30 Watt auskommt (inkl. SAT-S2 Karte als Videorecorder) und die Dateien zur Verfügung stellt.
Der hat SSDs und Win7 Pro (darauf kann ich mich mit Remotedesktop anmelden und die Programme von unterwegs starten) und ist Welten schneller als wenn die DBF auf dem NAS liegt.

Es gibt natürlich auch wirklich schnelle NAS, da ist man aber auch bei 700 Euro, mein "Server" hat bei der Aufrüstung von AMD X2 und mit SSD keine 500 gekostet.

Rückmeldung:

Das Programm läuft jetzt über NAS zufriedenstellend nach ein paar Umbauarbeiten:

- Netzwerk auf 1000GBit umgestellt
- langsammes NAS durch NAS - Eigenbau ersetzt:
neues NAS mit ITX Motherboard AsRock E350M1 - RAID1 mit den HDD 2 x 2TB vom alten NAS
Software: NAS4FREE
Übertragungsraten jetzt 80MB/s statt vorher maximal 10MB/s

so ist es erträglich! :-)

mfg. Klaus
Antworten