14. Januar 2009 17:56
Hallo zusammen,
vielleicht kann mir ja jemand helfen, denn ich bin ratlos...
Wenn man im Kontenplan von einem Konto aus auf die Posten geht, dann dauert es ewig, bis die Posten-Form geöffnet wird.
Ich habe eine Trace mitgeschnitten und findet dort folgendes Statement:
SELECT * FROM "navision"."dbo"."Mandant$G_L Entry" WHERE (("G_L Account No_"=@P1)) AND "G_L Account No_"=@P2 AND "Posting Date"=@P3 AND "Entry No_">@P4 ORDER BY "G_L Account No_","Posting Date","Entry No_"
mit den folgenden Parametern:
@P1 varchar(20),@P2 varchar(20),@P3 datetime,@P4 int','1370','1370','Mai 5 2003 12:00:00:000AM'
Nun habe ich genau dieses Statement in meinem Management Studio ausgeführt und dort ist es super schnell. Was für mich auf das Parameter Sniffing Problem hin deutet. Ich habe dann einen Plan Guide erstellt:
EXEC sp_create_plan_guide
@name = N'Guide4',
@stmt = N'SELECT * FROM "navision"."dbo"."Mandant$G_L Entry" WHERE (("G_L Account No_"=@P1)) AND "G_L Account No_"=@P2 AND "Posting Date"=@P3 AND "Entry No_">@P4 ORDER BY "G_L Account No_","Posting Date","Entry No_"',
@type = N'SQL',
@module_or_batch = NULL,
@params = N'@P1 varchar(20),@P2 varchar(20),@P3 datetime,@P4 int',
@hints = N'OPTION (RECOMPILE)'
Und dann anschließend wieder aus meinem Navision Client die Posten-Form aufgerufen und es ist immer noch so langsam.
Hat jemand eine Idee?
14. Januar 2009 18:47
Hi!
Welche NAV Version (Build No.)? Welche SQL Server Version (Build No.)?
"RECOMPILE Hints" funktionieren erst ab SQL Server 2005 SP2 U4 (Build 9.0.3200) mit NAV 4.0 SP3 U6 und höher ...
Wenn der "Plan Guide" nicht greift, dann versuch doch mal einen "RECOMPILE Hint" in die "$ndo$dbconfig" Tabelle einzutragen:
- Code:
CREATE TABLE [$ndo$dbconfig] (config VARCHAR(1024))
GRANT SELECT ON [$ndo$dbconfig] TO [public]
GO
INSERT INTO [$ndo$dbconfig] VALUES('UseRecompileForTable="G/L Entry"; Company="Mandant";RecompileMode=1;')
(greift erst bei Neuanmeldung des Clients)
Im Profiler müsste dann die Abfrage mit "OPTION (RECOMPILE)" enden ...
Hilft das was?
P.S.: Bei "G/L Entry" hilft es ggf. auch den "Clustered Index" auf "G/L Account No., Posting Date, Entry No." zu setzen ...
15. Januar 2009 11:18
Hi,
DANKE für die Antwort. Mein englischer Kollege hat bei mibuso einen Eintrag gemacht. Wir brauchen hier nicht an zwei Fronten zu arbeiten. Mal sehen was bei mibuso raus kommt...
Gruß
Sabrina