In Qgis 3.38.0 Grenoble, heb ik al langere tijd een connectie met onze Oracle database, waarin onze BGT wordt bijgehouden. de BGT-lijnen en vlakken laag heb ik apart geladen. Om de zoveel weken, indexeer ik via Bron-Geometrie- ruimtelijke index maken, deze tabellen. Tot voor kort ging dat redelijk vlot. maar sinds vorige week Duurt het indexeren bijna 20 minuten en andere applicaties in onze organisatie hebben dan geen toegang meer tot deze Oracle data. Na 20 minuten, als het indexeren klaar is, lijkt het net of Oracle weer wakker moet worden. Ook in Qgis laad de laag in de kaart erg langzaam. pas na ruim een uur is alles weer normaal. Ondertussen in de andere applicaties (buiten Qgis) duurt het ook minimaal een uur voordat alles weer normaal draait.
Voorheen had het indexeren geen invloed op andere applicaties. en er is niets verandert in mijn Qgis bestand of in de Oracle connectie. Voor mij een raadsel waarom dit nu opeens gebeurd.
Iemand zelfde ervaring en eventueel een oplossing?
In de wetenschap dat Oracle héél veel “instelknopjes” heeft voelt dit een beetje als via de telefoon aanwijzingen geven welk knopje in de cockpit van een Airbus 380 je moet omzetten
Toch een educated guess:
De BGT-database (gokje: NedBGT/NGDW?) zal alleen maar blijven groeien, omdat er nieuwe objecten bijkomen, en oude (historie) blijft behouden. Daardoor kan de oorspronkelijk ingestelde “sorteerruimte” (de PGA) die Oracle nodig heeft voor het indexeren van de tabellen op gegeven moment te klein worden, waardoor het indexen zeer inefficiënt en dus langdurig gaat verlopen.
Weet niet of de BGT software daar zelf iets slims mee kan doen, of dat je een Oracle-mannetje langs moet laten komen om waarschijnlijk de PGA_AGGREGATE_TARGET in Oracle (tijdelijk) hoger in te stellen.
(het lijkt me dus geen QGis-dingetje)
Ik zou uberhaupt niet de QGis-tools hiervoor gebruiken. Als het echt nodig is om de indexen aan te passen/opnieuw aan te maken, zou ik daarvoor een job aanmaken in Oracle zelf (hoewel die er al is als ik me goed herinner - in de laatste versies worden spatial indexes beter onderhouden dan voorheen), die je dan 's nachts laat draaien.
En als de historie bewaard moet blijven in de tabel, zou ik kijken naar partitionering van de tabel, en de historie in een aparte partitie zetten. Hoeveel rijen hebben we het over?
Moet er wel bij zeggen dat ik al een jaar of 8 niet meer met Oracle werk overigens, dus het kan heel goed zijn dat mijn kennis niet helemaal up-to-date meer is