AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Laufzeit von Stored Procedure verkürzen
Thema durchsuchen
Ansicht
Themen-Optionen

Laufzeit von Stored Procedure verkürzen

Ein Thema von Andidreas · begonnen am 4. Okt 2012 · letzter Beitrag vom 18. Okt 2012
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#21

AW: Laufzeit von Stored Procedure verkürzen

  Alt 5. Okt 2012, 10:37
Dann würde es sich für die Übergangszeit empfehlen auf diese Tabelle einen Insert-Trigger zu legen, der die Daten beim Einfügen in eine bessere Tabelle überführt. Das Einfügen von Daten wird sich minimal verändern, aber die Abfragen werden erheblich schneller (werden können).
Korrekt, die Tabelle wird sich nicht mehr ändern.
Meinst Du also ich soll mir eine 2. Tabelle machen in der ich die korrekten Datentypen verwende und diese dann mit Insert Trigger befülle?
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#22

AW: Laufzeit von Stored Procedure verkürzen

  Alt 5. Okt 2012, 10:52
Ich hab die Stored Procedure mal aufgteilt und zwar so, dass ich die Selects nicht mehr über Unions verbinde, sondern für jeden Select eine eigene Stored Procedure hab... das würde die Laufzeit schon mal auf 1:02 min. reduzieren...

Heißt wohl das die Unions ein nicht unerheblicher Zeitfresser sind...
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
jobo

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

AW: Laufzeit von Stored Procedure verkürzen

  Alt 5. Okt 2012, 11:19
mit jedem union werden Deine Mio Datensätze erneut abgefragt.
Weiß nicht genau wie es unter MS ist, aber ein "Union" prüft implizit auf Distincte Ergenisse - also werden alle Teilergebniss noch einmal untereinander verglichen.
Ein "Union All" macht das nicht und ist vorzuziehen, wenn man sicherstellen kann, dass sich die Ergebnisse nicht überschneiden.

Wenn die Einzelergebnisse jeweils große Mengen sind, könnte das also auch was bringen.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#24

AW: Laufzeit von Stored Procedure verkürzen

  Alt 5. Okt 2012, 11:25
Ne im Prinzip erhalte ich durch die Stored Procedure als Ergebniss 6 Datensätze...
Eine Stored Procedure die alles abdeckt wäre halt "eleganter" gewesen wenn ich an meinen VBA Code denke, aber wenn ich durch einen getrennten Aufruf der Stored Procedures schneller die Ergebnisse erhalte dann muss ich halt diesen weg gehn...

Union ALL wäre noch eine Alternative die ich mal Testen könnte...
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#25

AW: Laufzeit von Stored Procedure verkürzen

  Alt 5. Okt 2012, 11:32
Die erwähnten Temptables wären auch eine Möglichkeit ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Laufzeit von Stored Procedure verkürzen

  Alt 5. Okt 2012, 11:33

Korrekt, die Tabelle wird sich nicht mehr ändern.
Meinst Du also ich soll mir eine 2. Tabelle machen in der ich die korrekten Datentypen verwende und diese dann mit Insert Trigger befülle?
noch besser wäre es sich Gedanken über die abgespeicherten Daten zu machen, und diese dann "auseinander zu pflücken"http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)
Alleine dadurch solltestt Du schon einiges gewinnen.

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

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

AW: Laufzeit von Stored Procedure verkürzen

  Alt 5. Okt 2012, 12:04
Ne im Prinzip erhalte ich durch die Stored Procedure als Ergebniss 6 Datensätze...

Union ALL wäre noch eine Alternative die ich mal Testen könnte...
Wenn es nur 6 Datensätze sind, dürfte der Abgleich den Kohl nicht fett machen. Es sei denn, der Optimizer läuft bei dem Statement Amok.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#28

AW: Laufzeit von Stored Procedure verkürzen

  Alt 5. Okt 2012, 12:24
Die erwähnten Temptables wären auch eine Möglichkeit ...
Was soll ich über Temptables machen? Sorry ich versteh das Argument nicht...


Korrekt, die Tabelle wird sich nicht mehr ändern.
Meinst Du also ich soll mir eine 2. Tabelle machen in der ich die korrekten Datentypen verwende und diese dann mit Insert Trigger befülle?
noch besser wäre es sich Gedanken über die abgespeicherten Daten zu machen, und diese dann "auseinander zu pflücken"http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)
Alleine dadurch solltestt Du schon einiges gewinnen.

Gruß
K-H
Ein auseinander pflücken der Daten wird vermutlich auch nur schwer möglich sein...
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#29

AW: Laufzeit von Stored Procedure verkürzen

  Alt 5. Okt 2012, 12:33
Der, der das verzapft hat, ist ein Cretin. Ein ausgemachter Vollpfosten.
Außer Du warst das, andidreas.
Ich sehe keinerlei Notwendigkeit, einen Entwickler für ein DB-Design derart zu titulieren. Schon gar nicht, wenn man selbst Außenstehender ist (!). Du weißt und kannst es besser - und ich frage mich, warum immer wieder solche Entgleisungen passieren?
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#30

AW: Laufzeit von Stored Procedure verkürzen

  Alt 5. Okt 2012, 13:12
nur schematisch ....

Code:
Create Table #pl
(
Value Varchar(20)
)

insert into #pl
SELECT Value FROM [inventory].[dbo].[fnSplit](@Productline, ';')

....


Select ALL_MaterialGrid,ALL_Brand,ALL_ProductLine,ALL_LowestPLC_SKU
,(CONVERT(Float, REPLACE(ALL_AvailableStock, ',', '.')) as ALL_AvailableStock
....
....
...
into #tmp1
from inventory.inv_all
Where ALL_ProductLine  in (Select * from #pl)
and ....


Ceate Table #Result
(
Storage varchar(30),
Typ varchar(20),
[PLC_<25] int,
........
)


insert into #Result

Select
'Warehouse' as Storage,
'SKUs' as Typ,
(Select Count(*) from #tmp1
where
...
...
...
and ALL_AvailableStock > 0) as [PLC_<25],
......

insert into #Result
......


--final:

Select * from #Result
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von Bummi ( 5. Okt 2012 um 13:14 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    


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