Bonjour à tous,
Mon message va être un peu long afin que vous compreniez bien toute l'histoire...
Via le pilode ODBC j'ai liée des tables MySQL avec Access. Jusque la aucun probleme. Petite surprise cependant, les tables sont arrivé dans Acess brut, sans aucune relation entre elle !!! J'utilise Access dans le but qu'il me génère des états, donc après avoir parcouru mes 50 tables et remis en place les relations m'interessants (au passage je ne vois n'y ne controle les cardinalités) j'effectue ma requête (une bonne grosse requête regroupant toute les données dont j'ai besoin). La requête fonctionne alors impécablement mais petite irronie les états ne veulent rien savoir j'obtient un message dont j'ai fait par dans un autre poste :
ODBC -- l'appel a échoué.
[MySQL][ODBC 3.51 Driver][mysqld-5.0.27-community-nt]Out of memory;restart server and try again (needed 65528 bytes)(#1037)
Il semblerait que la requete soit trop lourd à trier car lorsque l'on enleve des données, que l'on n'effectue pas d'opération sur les champs (regrouper,somme) ou que nous ne faisons pas de niveau de regroupement dans l'état ça marche !!!!
C'est requête est consistante mais sans plus (elle est faite sur une dizaines de champs avec 14 tables)... rien d'exceptionnel pourtant. Je suis donc allez voir les informations de mon serveur MySQL et il y a en effet quelque problème avec certain paramètre que je ne sais pas modifier et dont je comprend pas forcement leur rôle :
Innodb_buffer_pool_reads 35 Le nombre de lectures que InnoDB n'a
pu faire à partir de la réserve, menant
à une lecture directe d'une page.
Handler_read_rnd 458 Le nombre de requêtes de lecture d'un
enregistrement basée sur une position fixe.
Ce nombre est élevé si vous faites de nombreuses
requêtes qui nécessitent de trier les résultats.
Vous avez probablement un grand nombre de requêtes
qui demandent à MySQL de parcourir des tables en entier,
ou vous avez des jointures qui n'utilisent pas correctement
les clés.
Handler_read_rnd_next 2393 Le nombre de requêtes de lecture du prochaine
enregistrement dans le fichier. Élevé si vous
faites plusieurs parcours de tables. Ceci suggère
que vos tables ne sont pas correctement indexées ou
que vos requêtes ne sont pas écrites de façon à tirer
parti des index que vous avez définis.
Created_tmp_disk_tables 28 Le nombre de tables temporaires sur disque créées
automatiquement par le serveur lors de l'exécution d'énoncés.
Si la valeur du paramètre Created_tmp_disk_tables est trop grande,
augmentez la valeur de tmp_table_size afin que les tables temp
soient maintenues en mémoire au lieu d'être sur disque.
Key_reads 474 Le nombre de lectures physiques d'un bloc de clés depuis le disque.
Si cette valeur est élevée, la taille de votre mémoire tampon de clés
est trop petite. Le taux d'échec de la cache peut être calculé par
"Key reads/Key read requests".
Select_full_join 9 Le nombre de jointures qui n'ont pas utilisé d'index. Si
cette valeur est supérieure à 0, vérifiez soigneusement
les indexes de vos tables.
Opened_tables 294 Le nombre tables qui ont été ouvertes. Si trop élevé,
votre cache de table est probablement trop petite.
Je pense qu'il sagit d'un problème arrivant souvent au gens comme moi s'improvisant sur les bases de données. Si quelqu'un pouvait diagnostiquer mon problème ou m'éclairer je lui en serais très reconnaissant.
Partager