AFAS bestanden vraag

Ik heb vandaag dit weer opgepakt nadat mij vorige keer is aangegeven dat de aanpassingen nog niet in de toen meest recente release zaten. Nu wederom geprobeerd echter krijg ik tijdens het inladen een error. Het lijkt erop dat het aantal rijen extra veel MB’s binnenhaalt.

Zo zijn er slechts 458 rijen binnen gehaald alleen haalt die bijna 1 GB binnen alvorens de loading te cancellen door een tekort aan ‘geheugen’.

Zie hieronder de request:

Ik hoor graag hoe we dit kunnen optimaliseren/verbeteren?

Het is niet mogelijk bij gebrek aan informatie om hier een zinvol antwoord op te geven.

Kunt u meer informatie geven over de query die u uitvoert en waar het om gaat?

Aangeroepen query:

create or replace view _bestanden
as
select *
from   AfasOnline.GetConnector._bestanden_bij_dossier fle
join   AfasOnline.GetConnector._dossieritems_incl_autorisatie_v2 ble
on     fle.dossieritem = ble.dossieritem
join   Subject(fle.dossieritem, fle.bijlage) att
where  fle.naam like '%.pdf' 
and    ble.onderwerp = 'hovk'

Deze query haalt van de bestaande bestanden in AFAS de ‘link’ naar het bestand op via een zogenoemde Subjectconnector. Onderstaande code is de enige manier om het bestand op te halen volgens de AFAS-principes:

Subject(fle.dossieritem, fle.bijlage)

Deze query wordt eenmalig aangemaakt in de UniversalSQL-editor om de view aan te maken. Vervolgens wordt de query nogmaals in de start-up SQL meegenomen om de view aan te kunnen roepen in Power BI.

Wanneer ik de selectie ongefilterd op bestandhoeveelheid inlaad wordt dus voor ± 500 rijen, ± 1 GB binnen gehaald. Waardoor de load faalt vanwege een geheugen-issue in Power BI.

Wanneer ik de selectie kleiner maak, 6 bestanden), haalt Power BI ± 100 GB binnen.

Zie hiervoor onderstaande request.

Het is niet bekend of de bestanden daadwerkelijk zo groot zijn, maar dit komt voor in de praktijk.

Advies is om de bestandsgrootte te controleren en waar nodig te optimaliseren.

Verder biedt de query ruimte voor verbetering door de joinfilters te corrigeren:

create or replace view _bestanden
as
select *
from   AfasOnline.GetConnector._bestanden_bij_dossier fle
join   AfasOnline.GetConnector._dossieritems_incl_autorisatie_v2 ble
on     ble.dossieritem = fle.dossieritem
and    ble.onderwerp = 'hovk'
join   Subject(fle.dossieritem, fle.bijlage) att
where  fle.naam like '%.pdf' 

Mogelijk is er nog winst te halen door AfasOnline.GetConnector._bestanden_bij_dossier in AFAS nauwkeurig te definieren met een PDF-filter of door er een inner query van te maken zodat het PDF-filter met zekerheid eerder plaatsvindt, zoals:

create or replace view _bestanden
as
select *
from   ( select *
         from   AfasOnline.GetConnector._bestanden_bij_dossier fle
         where  fle.naam like '%.pdf' 
       )
join   AfasOnline.GetConnector._dossieritems_incl_autorisatie_v2 ble
on     ble.dossieritem = fle.dossieritem
and    ble.onderwerp = 'hovk'
join   Subject(fle.dossieritem, fle.bijlage) att

U kunt voor deze verbeteringen het beste uw AFAS-applicatiebeheerder betrekken.