AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Performanceproblem parambyname und sql like
Thema durchsuchen
Ansicht
Themen-Optionen

Performanceproblem parambyname und sql like

Ein Thema von stalkingwolf · begonnen am 10. Okt 2013 · letzter Beitrag vom 10. Okt 2013
Antwort Antwort
Seite 1 von 2  1 2      
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

AW: Performanceproblem parambyname und sql like

  Alt 10. Okt 2013, 12:48
Das "like" hebelt alle Indexe aus.
Gruß
Hansa
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Performanceproblem parambyname und sql like

  Alt 10. Okt 2013, 12:48
Das "like" hebelt alle Indexe aus.
Dann wäre FB aber ziemlich blöd.
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#3

AW: Performanceproblem parambyname und sql like

  Alt 10. Okt 2013, 12:49
Aber in welcher Unit findet denn diese mysteriöse "Optimierung" statt?
btw: Firebird 2.5 stimmt?
denn: http://www.firebirdfaq.org/faq308/
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Performanceproblem parambyname und sql like

  Alt 10. Okt 2013, 13:04
Die Optimierung hat mit dem Zeitpunkt der Planbildung zu tun. Beim Absetzen der Abfrage ohne Parameter ist bekannt, das das LIKE durch ein STARTING ersetzt werden kann. Bei der Verwendung von Parametern nicht, das ja der/die Wildcard(s) im Parameter stecken.
Markus Kinzler
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
521 Beiträge
 
#5

AW: Performanceproblem parambyname und sql like

  Alt 10. Okt 2013, 13:14
klingt plausible.
Wir konnten es auch nur bei like feststellen. Bei key = :key gab es keine Performanceprobleme. Man muss also nicht alle Programm ändern.

Wegen der 2.5 FB Frage. Laut Whatsnew v2.5.1
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#6

AW: Performanceproblem parambyname und sql like

  Alt 10. Okt 2013, 13:15
Stimmt... Wobei es dann Verbesserungspotential bei Firebird gibt.
Klar, wenn die Abfrage Parameter verwendet, kann Firebird nicht wissen, ob der Index möglicherweise doch benutzt werden kann (im Falle von "Text%")
Aber spätestens wenn der Parameter übergeben wird, weiß Firebird doch was zutun ist.

Natürlich müsste Firebird dafür den Ausführungsplan neu aufbauen, aber das wäre mit Sicherheit schneller als einen Fulltablescan zu fahren.
Wird der Parameter ersetzt, muss der Ausführungsplan ebenfalls neu aufgebaut werden.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Performanceproblem parambyname und sql like

  Alt 10. Okt 2013, 13:27
Man könnte auch das Like durch STARTING ersetzten, dann klappt es auch mit dem Parameter
Markus Kinzler
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

AW: Performanceproblem parambyname und sql like

  Alt 10. Okt 2013, 13:35
das wäre ja dann so was : "%Suche". Jo, könnte besser sein.
Problem ist jedenfalls das LIKE.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.546 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Performanceproblem parambyname und sql like

  Alt 10. Okt 2013, 13:55
Nee, sowas wäre das nicht, das % gehört ans Ende. Mich verwundert, dass FB nicht in der Lage sein soll, zu erkennen, ob es bei LIKE einen Index benutzen kann oder nicht. Bei Wildcards am Ende ließe sich ein ggf. vorhandender Index ja sehr wohl benutzen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hstreicher

Registriert seit: 21. Nov 2009
220 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: Performanceproblem parambyname und sql like

  Alt 10. Okt 2013, 15:07
Stimmt... Wobei es dann Verbesserungspotential bei Firebird gibt.
Klar, wenn die Abfrage Parameter verwendet, kann Firebird nicht wissen, ob der Index möglicherweise doch benutzt werden kann (im Falle von "Text%")
Aber spätestens wenn der Parameter übergeben wird, weiß Firebird doch was zutun ist.

Natürlich müsste Firebird dafür den Ausführungsplan neu aufbauen, aber das wäre mit Sicherheit schneller als einen Fulltablescan zu fahren.
Wird der Parameter ersetzt, muss der Ausführungsplan ebenfalls neu aufgebaut werden.
Das wiederspricht aber dem Konzept des Prepared Queries, das ja _gerade_ durch den vorbereiteten Plan (meist) schneller ist
also einfach die Prepared Queries so lassen , und im Zweifellsfall das normale Query verwenden
man kann nicht erwarten dass jedes Werkzeug für jede Aufgabe optimal ist.

Das heisst dass für uns Programmierer noch etwas Arbeit übrig bleibt , und uns die Computer nicht so schnell ersetzen werden

Geändert von hstreicher (10. Okt 2013 um 15:11 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz