Wir haben eine Webanwendung, in der die Benutzer Ad-hoc-Abfragen basierend auf Parametern ausführen, die eingegeben wurden. Ich könnte auch erwähnen, dass die Antwortzeit für die Benutzer von großer Bedeutung ist.Würden Sie diese einfache SQL zur Nacharbeit senden?
Die Webseite erstellt dynamisch eine SQL, die basierend auf den eingegebenen Parametern ausgeführt wird. Zum Beispiel, wenn der Benutzer gibt „1“ für „Business Unit“ wir eine SQL wie folgt konstruieren:
SELECT * FROM FACT WHERE
BUSINESS_UNIT = '1'
--AND other criteria based on the input params
Ich fand, dass, wenn der Benutzer keine BUSINESS_UNIT die folgende Abfrage erstellt angeben hat sich
SELECT * FROM FACT WHERE
BUSINESS_UNIT LIKE '%'
--AND other criteria based on the input params
IMHO, das ist unnötigerweise (wenn nicht grob) ineffizient und garantiert das Senden des Codes schlecht für die Änderung, aber da ich eine viel höhere Rate Code zurück zur Nachbearbeitung als andere habe, glaube ich, dass ich einen Ruf verdienen kann als " zu wählerisch."
Wenn dies eine unpassende Frage ist, weil es keine direkte Codierung Q ist, lassen Sie es mich wissen und ich werde es sofort löschen. Ich bin sehr verwirrt, ob subjektive Fragen wie diese erlaubt sind oder nicht! Ich werde deine Antworten beobachten.
ty
Update:
Ich bin mit einer Oracle-Datenbank.
Mein Eindruck ist, dass Oracle "LIKE '%'" nicht optimiert, indem die Bedingung entfernt wird und dass es weniger effizient ist. Könnte jemand bestätigen?
Sie wissen, wer sonst War zu wählerisch? MICHELANGELO. – Ken
Wie Sie aus Womps Antwort entnehmen können, müssen Sie den Code in dieser Situation nicht zurücksenden, da die meisten SQL-Abfrageoptimierer dieses Beispiel effizient behandeln. Allerdings bin ich gespannt, ob der Entwickler * gewusst hat *, dass es so optimiert werden würde. –