# Suchstrategie anzeigen



## Generic1 (20. Okt 2008)

Hallo,

ich habe vor kurzem in einer Zeitschrift gelesen, das man sich bei bestimmten Datenbanken die Suchstrategie anzeigen lassen kann, kennt jemand einen Link, wo das beschrieben ist oder Befehle, mit dem das möglich ist,

Beste Grüße,


----------



## tfa (20. Okt 2008)

Bei einigen RDBMS (z.B. MySQL oder DB2) heißt der Befehl EXPLAIN (gefolgt von dem zu analysierenden SELECT-Query).


----------



## Generic1 (20. Okt 2008)

Vielen Dank, ich hab zwar zu meiner Datenbank (FireBird) noch nichts gefunden aber vielleicht lässt sich da noch was erfahren,

Was mich noch interessierten würde ist, ob jemand schon mal ein Java- Programm in einer Datenbank laufen hat lassen, das ist anscheinend möglich, aber das ist sicher auch wieder von DB zu DB verschieden,


----------



## pinhead84 (20. Okt 2008)

Generic1 hat gesagt.:
			
		

> Was mich noch interessierten würde ist, ob jemand schon mal ein Java- Programm in einer Datenbank laufen hat lassen, das ist anscheinend möglich, aber das ist sicher auch wieder von DB zu DB verschieden,


Ich vermute, du meinst Stored Procedures?

Ich habe mal versucht in einer PostgreSQL-Datenbank eine Stored Procedure in Java zu implementieren. Ich war mit der Perfomance aber nicht sehr zufrieden. Ich hatte den Eindruck, dass bei jeder Ausführung einer Java-Funktion die JVM neu gestartet wurde. Für Suchalgorithmen ein 'No-Go'. 

Deshalb habe ich auf Python gewechselt habe und kann mich nicht beklagen.


----------



## maki (20. Okt 2008)

Ich denke er meint so etwas wie einen "execution plan" (bei MS SQL heisst das so), war da nicht ein PLAN Keyword in FireBird?


----------



## pinhead84 (20. Okt 2008)

maki hat gesagt.:
			
		

> Ich denke er meint so etwas wie einen "execution plan"


'Stored Procedures' in PostgreSQL sind nichts Anderes. Jedoch kannst du die Logik des 'execution plan' in verschiedenen Sprachen implementieren. 'Out of the box' ist dies PL/pgSQL oder eben PL/Java, PL/Perl, PL/Python etc.

Meine Antwort zielte auf die Frage:


			
				Generic1 hat gesagt.:
			
		

> Was mich noch interessierten würde ist, ob jemand schon mal ein Java- Programm in einer Datenbank laufen hat lassen, das ist anscheinend möglich, aber das ist sicher auch wieder von DB zu DB verschieden,


Und lautete: Ja, ich habs in PostgreSQL probiert und war mit der Java-Performance nicht zufrieden. Ob das auch auf Firebird zutrifft, steht auf einem anderen Blatt.


----------



## maki (20. Okt 2008)

>> 'Stored Procedures' in PostgreSQL sind nichts Anderes.

Ein Execution Plan ist keine Stored Procedure, sondern schlicht der "Ausführungplan" eines SQL Statement, inkl. Subselect, joins etc., da kann man dann sehen wo die meiste Zeit draufgeht bei einem komplexen SQL Statement.
Wird zum Performacetunen analysiert so dass man seine SQL Statements anpassen kann.

k.A. ob der TS das meint oder etwas anderes, der erste Post riecht danach, der folgende eher nicht..


----------



## pinhead84 (20. Okt 2008)

maki hat gesagt.:
			
		

> Ein Execution Plan ist keine Stored Procedure, sondern schlicht der "Ausführungplan" eines SQL Statement, inkl. Subselect, joins etc., da kann man dann sehen wo die meiste Zeit draufgeht bei einem komplexen SQL Statement.
> Wird zum Performacetunen analysiert so dass man seine SQL Statements anpassen kann.


Achso, du meinst das bereits vorgeschlagene EXPLAIN (wie es anderswo wieder heißt). Dann habe ich dich falsch verstanden.



			
				maki hat gesagt.:
			
		

> k.A. ob der TS das meint oder etwas anderes, der erste Post riecht danach, der folgende eher nicht..


Ich bezog mich auf die Frage im zweiten Post von 'Generic1' - die klang verdächtig nach 'Stored Procedures'. Zur Eingangsfrage habe ich nichts hinzuzufügen.


----------

