Jump to content

DerFrank

Members
  • Gesamte Inhalte

    75
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von DerFrank

  1. Hallo zusammen

    ich stehe vor einem mysterium und weis gerade nicht weiter. Vielleicht hat jemand einen Tipp für mich.

     

    Habe eine SP- geerbt, fast 3500 Codezeilen. Der das mal geschrieben hat ist nicht mehr da. Wie üblich auch keine Dokumentation geschweige im Code selbst.

     

    In dieser SP werden viele lokale temporäre Tabellen verwendet wie z.B.

    Select * into #localTable From v_MeineView

    , was eigendlich kein Problem darstellen sollte.

     

    Das Problem ist die Verarbeitung, die bleibt manchmal an ein und der selben stelle stehen und macht erstmal nicht weiter.

    Irgend wann geht es weiter aber das irgendwan kann dann mal so >4-5 Stunden dauern!

     

    Die Stelle an der die Verarbeitung steht ist in etwa bei einer ähnlichen DML Anweisung (Siehe code bsp) der Fall

    Insert Into #localTable 
    Select mv2.*  From v_MeineView mv
    	inner join v_MeineView2 mv2
    				on mv.ID = mv2.ID

    Der Code ist einen BEGIN TRY { sql_statement ... } END TRY BEGIN CATCH [ { sql_statement ... } ] END CATCH eingeschlossen.

     

    Der Coder wurde von mir auch schreitweise, also manuell, ausgeführt und konnte kein Problem feststellen. Auch die Laufzeiten der Views liegen im "Normalen" Rahmen.
    In dem Code wurden an den neuralgischen punkten Log's eingefügt. Um zu prüfen wo er stehen bleibt und evtl einen Fehler wirft.
     

    Aber wenn die SP im DTSX Paket ausgeführt wird, dann dauert dies manchmal sehr lange. Achso das DTSX Paket wird über einen AgentJob gestartet.

    Trotz der Log's im Code sind leider keine Fehler geworfen nur stillstand an einer bestimmten Stelle.

     

     

    Wir haben SQL-Server 2017 und befindet sich in einem Server-Cluster mit 3 Nodes und haben sehr viel Power, so die Aussage unserem SQL-Admin.

    Unser Datentransfer beträgt bisher mehrer Terabyte und es gab noch nie irgenwelche Probleme.

     

    Meine Fragen:

    • Das Verhalten kenne ich bei einem plötzlichen einsetzen einer "Garbage Collection" (Speicherbereinigung). Gibt es sowas in der SP?
    • wie kann ich das Verhalten noch analysieren ?

     

    Freue mich auf Rückmeldung und ideenen

     

    DerFrank

     

     

     

  2. Hallo

    Ich brech mir gerade eine ab.  Ich habe nen knoten im Kopf.

     

    Versuche schon seit Stunden mit dem group by aber es will nicht funktionieren.

    Habe eine View (v_StudentQualifikation gefiltert auf einen Studenten) die mir dieses Ergebnis zurückgibt:

    Person_ID	Student	Fach_ID	ClusterNr	Qualifikation	QualifikationPrio
    9157	M_13402263207	973	1	Ax33	1
    9157	M_13402263207	973	2	Bx123	1
    9157	M_13402263207	973	2	Bx9	2
    9157	M_13402263207	973	3	Qx123	2
    9157	M_13402263207	973	3	Qx1A3	4
    9157	M_13402263207	973	3	Qx1AZ	4
    9157	M_13402263207	973	4	Qays1	3
    9157	M_13402263207	973	4	PG2	3
    9157	M_13402263207	973	4	PG9	3
    9157	M_13402263207	973	4	PG4.A	4
    

    Folgendes Ergebnis möchte ich zurückbekommen:

    Maximal eine Zeile pro Cluster nach der niedrigsten Priorität

    Person_ID	Student	Fach_ID	ClusterNr	Qualifikation	QualifikationPrio
    9157	M_13402263207	973	1	Ax33	1
    9157	M_13402263207	973	2	Bx123	1
    9157	M_13402263207	973	3	Qx123	2
    9157	M_13402263207	973	4	PG2	3
    

    Erklärung zu den Feldern:

     

    Das Feld QualifikationPrio ist eine Priorität und bedeutet

    -          1 höchste Priorität

    -          2 höchste Priorität

    -          3 höchste

    -          usw. Priorität

     

    Das Feld ClusterNr bestimmt das Cluster in denen der Student die vorgegebenen Qualifikationen abgelegt hat.  Bsp: ClusterNr 4 hat der Student 4 Qualifikationen abgelegt.

    4	Qays1
    4	PG2
    4	PG9
    4	PG4.A

    Hoffe ich konnte es verständlich formulieren.

     

    Alle Versuch die ich gemacht habe führen nicht zum ziel. Das grösste problem ist bein Cluster 4, da bekomme ich immer mehr als eine Zeile zurück.

    Hier mal mein versuch:

    select m.Personalstammdaten_ID Person_ID
    	 , 'M_134' + m.PersNr Student
    	 , m.TDif Fach_ID
    	 
    	 , l.Quali Qualifikation 
    	 , min(m.NAQ_Text_Prio) prio
    from dbo.v_Stamm_IST_pro_Mitarbeiter_IH as m
        inner join [0100].tbl_Lookup_IH as l         on m.TDif = l.Tdif            and m.Quali = l.Quali            and m.Studium = l.Studium 
    where m.PersNr = '00019505' and l.ClusterNr= 4 
    group by m.Personalstammdaten_ID 
    	 , 'M_134' + m.PersNr 
    	 , m.TDif 
    	 , l.ClusterNr
    	 , l.Quali 

     

    Wer kann mir hier weiterhelfen?

     

    Im Anhang ist auch ne Word-datei in der man die Tabellen besser sehen kann.

     

    Besten Dank schon mal im Voraus.

    DerFrank

     

     

     

     

    group by Problem.docx

  3. Hi zusammen...

    danke für die anregungen aber ich hab ne lösung gefunden...

    verwende wie immer Visual Studio (community 2019) und dort verwende ich das NuGet-Packet MarkDig.

    Nun, hab mich da etwas durch gefummelt aaaaber... ich kann die hundert Markdown dateien mittels einem kleinen Konsolenprogramm in html konvertieren...

    Zum Anfang reicht mir das ...

     

    Hiermit ist dann meine Anfrage gelöst.

     

    Ach wer dieses kleinen Konsolenprogramm haben möchte, kann sich gerne bei mir melden...

     

    Beste Grüße

    DerFrank

  4. Hi,

    ich suche eine möglichkeit die erstellten MarkDown Dateien per script automatisiert in html bzw. in pdf umzuwandeln.

    Ich selber verwende "Visual Studio Code" in dem die Module für MarkDown implementiert sind. Damit erstellte ich meine Dokumentationen (MarkDown-Datei) und kann sie als Html bzw. PDF exportieren. Wie gesagt, alles manuel und funktioniert hervorragend :-)

     

    Diese MarkDown-Dateien werden in GIT versioniert und wenn z.B. ein Entwicklungszyklus abgeschlossen ist, sollen alle MD-Files in html bzw PDF konvertiert werden.

    Bin gerade dabei mit Visual Studio das nuget Packet von MarkDig zu verwenden... hm... hoffe dass das der richtige ansatz ist...

     

    Hoffe jetzt mehr klarheit gebracht zu haben...

     

    VG

    DerFrank

     

     

  5. Hi Leute

    möche mit MarkDown meine Dokumentation erstellen.

    Mit Visual Code geht das ja prima. Konvertieren in PDF oder Html kein problem aaaaaber...

    es gibt ganz schön viele MarkDown-Dateien und werden immer mehr daher suche ich nach einer Lösung dies per batch Scripte in html oder pdf zu konvertieren.

     

    Wer kennt sich damit aus und hat das schon mal gemacht? Microsoft mach ja bereits die docs how-to-write-use-markdown.

    Die Syntax ist mir klar aber wie geht das automatisiert?

     

    Wer kann helfen?

     

    VG

    DerFrank

  6. Hi

    Also, ich habe auch vor langer zeit mit der postgress datenbank gearbeitet und wollte diese auch in den sql-server importieren....

    Habe ein umweg genommen mittels MS Access... dort eine odbc verbindung zum postgressDB angelegt und dann die tabellen in die AccessDB importiert.... anschliessend in der Datenbank vom SQL Server importiert...

    Vielleicht geht das auch auf dem SQL Server mittels Linked connection... habe das ganz selten mit verschieden SQL server gemacht...

     

    Versuche es mal damit

    • Danke 1
  7. Ich habe da noch eine blöde Idee, die ich noch nicht ausprobiert habe und zwar;

    wenn der Import eine passwortgeschützten MdB mit ssis Packet funktioniert, dann sollte man doch evtl. den generierten connectionstring irgendwie abgreifen können?

     Aber eine andere Lösung wäre du erstellst die zwei ssis Pakete um die mdb‘s zu importieren. 

    Moder nur ein ssis Paket dem du ein Parameter definiert für Passwort und im Paket entscheidest welcher Importzweig verwendet werden soll. 

     

    Das würde doch einfacher sein oder?

     

    VG

    DerFrank

     

  8. Wie hast du die views miteinander verjoint?

    Denke du hast ein inner join verwendet und daher funzt es nicht. 

     du musst die view Monat mit der view Vormonat mit left join verbinden. 

    Bspw.

     

    Select M.Artikel,  M.Monat, M.Umsatz, 

    V.artikel, v.monat, v.umsatz

    from Monat m left join Vormonat v on

    m.artikel = v.artikel

    where m.monat is null

     

    glaube so sieht die sql Anweisung aus. 

    Du kannst damit auch gleich im Select eine case Anweisung einbauen, die dann  gleich den NULL Datensatz mit V.Monat überschreibt. 

     

    Versuch es mal damit 

     

    vg

    DerFrank

  9. Hi basstscho

    Da du am anfang geschrieben hast, dass ihr da eine kleine web anwendung verwendet, frage ich mich ob der flaschenhals eher an der web anwendung sein könnte?

    Kann sein muss aber nicht. Reich ja schon aus, das dort eine schleife läuft, die sehr lange geht bevor daten von server geladen werden... hm.. bin kein web entwickler. Vielleicht gibt es ja tools, die die web anwendung mal tracen kann.

     

    Nur so eine iddee

     

    Vg

    DerFrank

×
×
  • Neu erstellen...