Hoi, ik zit met een zeer apart probleem.
Op m'n werk maken we software die zowel op een DB2-database als op een Oracle-database moet kunnen werken. Dit doen wij via de BDE.
Als wij een schermpje tonen waarmee je wijzigingen in de database kunt doorvoeren dan duurt het op DB2 heel erg lang voordat je kunt gaan editten, terwijl je in Oracle meteen aan de slag kunt.
Via de SQL-monitor ben ik er achter gekomen wat het verschil is: Wanneer je een dataset van dsBrowse naar dsEdit verandert, dan gebeurt er niets in Oracle. Maar wanneer je verbonden bent met DB2, dan wordt het complete record opgevraagd dat je wilt gaan editten. Dit gaat via de hele leuke query in de vorm van: select * from tabel where kolom1=waarde1 and kolom2=waarde2 and kolom3=waarde3, etc. Die specifieke tabel heeft enkele tientallen kolommen, en de query wordt daardoor ook heel erg lang. En *alle* kolommen zitten in de where-clause.
Dit is het enige verschil wat ik heb ontdekt tussen editten in Oracle en editten in DB2. En die lange selectie-query genereren wij zelf niet, maar blijkbaar vindt de DB2-driver van de BDE dat een goed idee...
Weet iemand een manier om dit te omzeilen? Of heeft iemand andere ideeen?
En kom aljeblieft niet aankakken met "dan moet je een andere manier van editten gebruiken", dat weet ik zelf ook wel. Dat is helaas nu even geen optie..
Op m'n werk maken we software die zowel op een DB2-database als op een Oracle-database moet kunnen werken. Dit doen wij via de BDE.
Als wij een schermpje tonen waarmee je wijzigingen in de database kunt doorvoeren dan duurt het op DB2 heel erg lang voordat je kunt gaan editten, terwijl je in Oracle meteen aan de slag kunt.
Via de SQL-monitor ben ik er achter gekomen wat het verschil is: Wanneer je een dataset van dsBrowse naar dsEdit verandert, dan gebeurt er niets in Oracle. Maar wanneer je verbonden bent met DB2, dan wordt het complete record opgevraagd dat je wilt gaan editten. Dit gaat via de hele leuke query in de vorm van: select * from tabel where kolom1=waarde1 and kolom2=waarde2 and kolom3=waarde3, etc. Die specifieke tabel heeft enkele tientallen kolommen, en de query wordt daardoor ook heel erg lang. En *alle* kolommen zitten in de where-clause.
Dit is het enige verschil wat ik heb ontdekt tussen editten in Oracle en editten in DB2. En die lange selectie-query genereren wij zelf niet, maar blijkbaar vindt de DB2-driver van de BDE dat een goed idee...
Weet iemand een manier om dit te omzeilen? Of heeft iemand andere ideeen?
En kom aljeblieft niet aankakken met "dan moet je een andere manier van editten gebruiken", dat weet ik zelf ook wel. Dat is helaas nu even geen optie..
Siditamentis astuentis pactum.