-
Pb de performance Oracle
Bonjour,
Je développe une application Delphi qui utilise un connecteur ADO pour attaquer les bases de données.
Récemment nous avons rendu notre application compatible Oracle en plus de SQL Server.
Toutefois je suis très déçu des performances que nous obtenons avec Oracle et j'essai d'en connaitre les causes.
J'ai fait un test tout simple qui fait des insertions massives suivi de lecture multiple et j'arrive à des temps d'executions qui sont bcp plus long que sous SQL Server (de l'ordre de 30% de plus pour l'écriture et de 50% de plus pour la lecture).
Je suppose qu'il existe des possibilités d'optimisation pour Oracle.
Le serveur Oracle est installé sur la même machine que le serveur SQL Server.
Ce sont toute deux les versions gratuites :
- SQL Server 2005 express
- Oracle Express 10.2.0.1.0
Le serveur n'est pas très puissant ( Athlon-3200+ et 1Go de RAM).
Sous Delphi j'utilise le driver OLE DB fournit par Oracle (OraOLEDB.Oracle.1).
D'avance merci pour vos conseils !
-
D'après mes premiers test j'ai l'impression que SQL server met bcp mieux en cache certaines opérations. Car sur les premiers lancement de mes tests les résultats sont quasiment équivalent mais lorsque je renouvelle SQLServer progresse très nettement alors que Oracle reste au même niveau.
-
le buffer cache et/ou la SGA sont probablement trop petit
-
Bonjour,
c'est pas uniquement pour défendre Oracle , mais Oracle XE n'est pas fait pour des tests de perfs ....
il est limité en memoire 1G ,un CPU et 4Go de disques.
en plus les insertions massives on peut optimiser :
insert /*+ append */, nologging
pour les requetes pareil index ou pas ...
Il y a le tuning pour ca
il y a des liens vers tutotiel ici notamment explain plan ,tuning ...
Oracle en version complete est telechargeable gratutitement
-
je comprend bien que la version d'éval n'est pas faites pour les tests de perf. D'autre part de toute manière je n'ai qu'un CPU, qu'un Giga de RAM et la base de données est pour l'instant toute petite.
D'autre part je la compare à la version gratuite aussi de SQL Server.
Si sur mon Giga de mémoire je dédis environ 400Mo pour Oracle. Comment dois-je configurer le buffer cache et le SGA ?
-
Rectification 10G XE n'est pas une version d'evaluation, c'est une version complète mais bridée....
C'est plus pour les fonctionnalités , encore bridées -parce quil y en a plein qui manquent - que pour la perf
ca va etre difficile avec 1 Go de RAM et 400 Mo Oracle sachant que je pense que tu veux juste mettre la SGA dans les 400 Mo
en plus il ya Sql server qui tourne
...
Il va falloir faire des choix, du genre
peut etre arreter une base pendant qu'on teste l'autre sinon ca rique de swapper
Pour voir les parameter actuel
Pour mettre une valeur :
Code:
alter system set sga_target=100M
par exemple
Code:
alter system set pga_aggregate_target=100M
par exemple
avant de faire les changements
regarde les doc sur l'architecture oracle
http://www.memoireonline.com/07/08/1...is-tiers3.html
apres
SGA
http://download.oracle.com/docs/cd/B....htm#sthref368
PGA
http://download.oracle.com/docs/cd/B...ory.htm#i49570
-
Quel est la volumétrie de ta base?