![]() |
Re: Geschwindigkeit von Views verbessern
Zitat:
Wenn ich bei MySQL in einer function einen SELECT * FROM foo schreibe, dann meckert MySQL schon bei der Anlage der Function. Bei einer Procedure funktioniert das. |
Re: Geschwindigkeit von Views verbessern
Eine UDF ist meines Erachtens was anderes als eine SP.
|
Re: Geschwindigkeit von Views verbessern
Zitat:
Zitat:
Zitat:
Ich denke, man muss auch bei MySQL (wenn es denn das Konzept vorsieht) in einer Funktion einen Funktionstyp definieren (Zahl, String, Tabelle o.ö) und dem Resultat dann etwas zuweisen. Falls MySQL diesbezüglich eine Einschränkung hat, und z.B. nur generische Datentypen als Funktionstyp erlaubt, dann wäre das peinlich, aber nicht zu ändern. Ich sprach im Übrigen von Konzepten. Eine Funktion berechnet etwas und liefert es zurück (oder transformiert oder was auch immmer), eine Prozedur nicht, die macht etwas. Das man in einer SP auch 'SELECT' schreiben kann, ändert nichts an diesem Paradigma. |
Re: Geschwindigkeit von Views verbessern
Eine Funktion liefert aber einen Wert zurück und keine Datenmenge. Eine SP kann auch eine Datenmenge zurückliefern. Deshlab ist sie imho in diesem Fall besser geeignet.
In Pascal könnte man eine Funktion als Prozedur mit Rückgabe beschreiben, bei einem DBMS stecken da verschiedene Konzepte dahinter. |
Re: Geschwindigkeit von Views verbessern
Zitat:
Ich meine jedoch, das (z.B.) Firebird eine Syntax à la
SQL-Code:
erlaubt. Somit stopfen sie Dataset-UDF und Stored-Procedures unter einen Hut. Das kommt dann aufs Gleiche raus und ist ok.
SELECT * FROM StoredProcedure (foo,bar)
Was ich gar nicht mag sind Stored Procedures, die man mit 'EXEC' aufruft, und die dann eine Ergebnismenge liefern. Wie soll man da denn Filtern bzw. das Ergebnis weiterverarbeiten? |
Re: Geschwindigkeit von Views verbessern
Nein, das gezeigte ist eine SP. Eine UDF ist in FB in einer Hochsprache implementiert, eine SP (noch) ausschliesslich als SQL-Code. Eine UDF liefert deshalb auch nur Werte zurück, da sie ja eine Funktion in einer Dll/so ist.
SQL-Code:
Select Funktion( <Parameter> from ...
|
Re: Geschwindigkeit von Views verbessern
Zitat:
Und falls es dem potenziellen Angreifer trotz div. Abfragen im PHP selbst, doch noch mal gelingen sollten den Schritt zur SQL-Injection oder vergleichbarem gehen zu können, möchte ich halt auch auf DB Seite so weit sein, dass er auch in dem Falle nicht in der Lage ist, eine komplette Benutzerliste z.B. auslesen zu können. Das kann in meinem System (es sei denn ich habe was übersehen) nämlich keiner ausser dem Admin. Deshalb ja auch dieser ganze Heck-Meck mit Views auf Views auf Tabellen und Co. :D |
Re: Geschwindigkeit von Views verbessern
Zitat:
Zitat:
Gleichzeitig kann die SP auch einen Datenmenge liefern (wie oben erläutert). Brauche ich nur die Parameter-Übergabe und die Datenmenge ist für mich uninteressant, dann führe ich diese mit ExecSQL aus. Benötige ich auch die Datenmenge, dann öffne ich die SP mit OPEN. Jetzt kann ich die Rückgabe-Parameter auslesen und auch das DataSet verarbeiten. cu Oliver |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz