Seite 1 von 2

index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 9:20
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

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 9:25
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.

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 9:27
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.

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 9:29
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')

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 10:16
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 !

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 10:25
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ß.

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 10:27
von brandelh
PS: man muss natürlich sicherstellen, dass das nicht zwei PCs gleichzeitig so machen 8)

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 11:34
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

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 11:53
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 ?

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 12:42
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 )

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 12:52
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.

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 12:58
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.

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 13:05
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.

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 15:37
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

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 06. Jun 2014 22:49
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.

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Sa, 07. Jun 2014 15:52
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.

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: So, 08. Jun 2014 13:06
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 :?

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: So, 08. Jun 2014 16:01
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:

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Di, 10. Jun 2014 11:10
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!

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Di, 10. Jun 2014 11:14
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:

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Di, 10. Jun 2014 14:18
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.

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Di, 10. Jun 2014 14:23
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>

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Di, 10. Jun 2014 14:58
von xbaseklaus
Werner_Bayern hat geschrieben: Alternativ mal testen:
Genau , das wars. VIELEN DANK :blob8: :D

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Di, 10. Jun 2014 16:57
von Werner_Bayern
Bitte. :sunny:

Re: index auf Arbeitsrechner anlegen !?!

Verfasst: Fr, 27. Jun 2014 10:58
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