Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Laufzeit von Stored Procedure verkürzen (https://www.delphipraxis.net/170822-laufzeit-von-stored-procedure-verkuerzen.html)

Andidreas 5. Okt 2012 09:37

AW: Laufzeit von Stored Procedure verkürzen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1185836)
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?

Andidreas 5. Okt 2012 09:52

AW: Laufzeit von Stored Procedure verkürzen
 
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...

jobo 5. Okt 2012 10:19

AW: Laufzeit von Stored Procedure verkürzen
 
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.

Andidreas 5. Okt 2012 10:25

AW: Laufzeit von Stored Procedure verkürzen
 
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...

Bummi 5. Okt 2012 10:32

AW: Laufzeit von Stored Procedure verkürzen
 
Die erwähnten Temptables wären auch eine Möglichkeit ...

p80286 5. Okt 2012 10:33

AW: Laufzeit von Stored Procedure verkürzen
 
Zitat:

Zitat von Andidreas (Beitrag 1185843)

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

jobo 5. Okt 2012 11:04

AW: Laufzeit von Stored Procedure verkürzen
 
Zitat:

Zitat von Andidreas (Beitrag 1185853)
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.

Andidreas 5. Okt 2012 11:24

AW: Laufzeit von Stored Procedure verkürzen
 
Zitat:

Zitat von Bummi (Beitrag 1185857)
Die erwähnten Temptables wären auch eine Möglichkeit ...

Was soll ich über Temptables machen? Sorry ich versteh das Argument nicht...

Zitat:

Zitat von p80286 (Beitrag 1185858)
Zitat:

Zitat von Andidreas (Beitrag 1185843)

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

Daniel 5. Okt 2012 11:33

AW: Laufzeit von Stored Procedure verkürzen
 
Zitat:

Zitat von Furtbichler (Beitrag 1185727)
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?

Bummi 5. Okt 2012 12:12

AW: Laufzeit von Stored Procedure verkürzen
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 Uhr.
Seite 3 von 6     123 45     Letzte »    

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