AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Function oder View

Ein Thema von p80286 · begonnen am 1. Apr 2011 · letzter Beitrag vom 1. Apr 2011
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

Function oder View

  Alt 1. Apr 2011, 10:29
Datenbank: Oracle • Version: 9 • Zugriff über: egal
Hallo zusammen,

ich hätte da mal eine prinzipelle Frage.
Meine Daten sind in "Familien" organisiert, D.h. zu einem Familiensatz gehören mind 1 und bis zu 300 "Kinderdatensätze".
Diese "Kinderdatensätze" sind mit "Ereignissen" verlinkt.
Jedes Ereignis kann zwei Datumsangaben enthalten "Frist" und "Erledigt".
Open : Frist:null Erledigt:Tagesdatum der Eingabe
Expire : Frist:Datum max. Laufzeit Erledigt:Datum Erreichung der max.Laufzeit.
Closed : Frist:null Erledigt:Tagesdatum der Eingabe

Jeder Datensatz enthält das Open-Ereignis und kann Expire und/oder closed enthalten.

Im Prinzip sieht die notwendige Abfrage so aus:
select FamKey from Family where not exists(Open) and (Expiry is null or Expiry>Today)

Meine Frage ist, was ist performanter, eine Funktion LebtdieseFamile(famkey) oder ein View der die Famkeys der lebenden Familien enthält.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

AW: Function oder View

  Alt 1. Apr 2011, 11:01
Kommt drauf an, was du brauchst.
Wenn du den Status aller "Familien" brauchst, ist der View insgesamt schneller, weil er auf einen Rutsch alles liefert.
Allerdings braucht der View wohl mehr Zeit, bis er Daten liefert.

Eine Funktion oder Stored Procedure ist für sich genommen schneller; wenn du aber in einer Schleife alle Familien abrufst wird insgesamt mehr Zeit benötigt als beim View.
Andreas
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Function oder View

  Alt 1. Apr 2011, 11:05
Im Prinzip sehen deine beiden Datumsfelder nach einem Lifecycle aus. Die Logik hab ich allerdings nicht ganz verstanden. Egal.

Wenn du in einer extra Tabelle einen Set von Datensätzen der Familien verwaltest ist das sicher am schnellsten (ordentliche Indizierung usw . vorausgesetzt). Du handelst Dir damit allerdings eine Redundanz ein, die Du per Constraints / Trigger gut überwachen musst.

Ein einfaches decode auf die beiden Datumsfelder sollte den "Zustand" auch ausspucken, uim Einzelzugriff wär das auch total unproblematisch. Wenn Du diese Daten in Reports / Queries massenhaft abfragst, dann dauert es halt etwas. Kann aber auch nicht tragisch sein.

p.S: Ich glaub ich das
Zitat:
..oder ein View der die Famkeys der lebenden Familien enthält...
falsch verstanden.
Du willst nur wissen, ob View mit den Kriterien aus Deinem Beispiel oder Funktion?
Gruß, Jo

Geändert von jobo ( 1. Apr 2011 um 11:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Function oder View

  Alt 1. Apr 2011, 12:25
Kommt drauf an, was du brauchst.
Wenn du den Status aller "Familien" brauchst, ist der View insgesamt schneller, weil er auf einen Rutsch alles liefert.
Allerdings braucht der View wohl mehr Zeit, bis er Daten liefert.

Eine Funktion oder Stored Procedure ist für sich genommen schneller; wenn du aber in einer Schleife alle Familien abrufst wird insgesamt mehr Zeit benötigt als beim View.
Das habe ich befürchtet, sowohl als auch!
Dann setzt ich beides ein, den View für die Massenabfrage und die Funktion für die Überprüfung einzelner Familien.
Vielen Dank und ein schönes Wochenende.

K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:20 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