Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1574 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Probleme SQL trop lent

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme SQL trop lent

n°1352822
Profil sup​primé
Posté le 24-04-2006 à 16:10:54  answer
 

oila je ne savai pas trop ou mettre ce topic alors je le post ici, je voulais créé une base de donnée contenant 1 table de 48 champs avec environ 70000 enregistrement, le probleme c'est que en voulant effacé toute la base de donnée je me suis rendu compte de la lenteur, je ne sais pas si c'est moi qui suis incapable de configurer une base de donnée sql mais au depart dans mon projet j'avais fait cette base de donnée avec un fichier texte deja il ne faisai que 8Mo alors que la base SQL en fait 60Mo et de plus il ne me faut que quelques seconde pour y avoir acces alors que pour la base SQL il me faut beaucoup plus de temps. Voila si quelqu un peu m'aidé a me dire si c'estmoi ou si c'est le SQL qui est nul.
Meci

mood
Publicité
Posté le 24-04-2006 à 16:10:54  profilanswer
 

n°1352847
Taz
bisounours-codeur
Posté le 24-04-2006 à 16:31:53  profilanswer
 

quel SGBD ? quel machine ? quel commande SQL ? rapport entre le langage SQL et le SGBD qui l'évalue ?

n°1352850
Paul JR
Posté le 24-04-2006 à 16:36:16  profilanswer
 

- Le SQL est pas nul donc c'est toi. Ingénieur base de données c'est un métier, ca s'apprends pas en 5 minutes.
 
- La base de données consome forcément plus de place que le fichier brut de données, car la base de données utilise plus de place, par exemple pour stoquer les index
 
- Si entre les données brutes et  le sockage dans la base de donées tu consome 52 mo en plus, c'est peut etre que ton shéma est très mal concu, c'est quoi ton shéma ?
 
- Si c'est lent en insert, fait des bulks inserts. Si c'est lent en lecture, met des index, etc...
 
C'est quoi ta base de données ? c'est quoi ta machine ? C'est quoi ton shéma ? c'est lent quand tu fais quoi ?


Message édité par Paul JR le 24-04-2006 à 16:37:17
n°1352958
Profil sup​primé
Posté le 24-04-2006 à 18:14:22  answer
 

C'est une base de donnée pour un jeux, ma machine est un 3Ghz HT 1Go (DDR 3200) de Ram sous XP Pro SP2.
C'est avec la commande INSERT et et SELECT mais c'est fais automatiquement c'est avec Visual Studio Net et je n'est pas créé d'index sachant que je dois charger toute la base de donnée en mémoire, mais je débute donc je sais pas s'il faut que je fasse un index, je me sert de la clef primaire pour identifier.
Pour le schéma je ne l'ai pas créé (mais je peux le faire) car je n'ai qu'une seule table et je pensait que c'etait juste pour représenter visuellement la base de donnée et les relations entre les tables.
V'rdt lent en lecture et en ecriture et c'est quoi des bulks inserts ?
Je precise que je n'est aucune connaissance des base de donnée je connais uniquement les commande INSERT SELECT DELETE UPDATE, et tout se fait automatiquement avec Visual Studio Net.


Message édité par Profil supprimé le 24-04-2006 à 21:14:50
n°1353447
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-04-2006 à 12:00:12  profilanswer
 

oh putain...
 
encore un pro de dreamweaver qui tente la programmation lourde... c'est pas gagné
 
 
un conseil : apprend à développer, achète un bouquin. et apprends à programmer proprement. vs.NET c'est pas "klik & play" :o


Message édité par Arjuna le 25-04-2006 à 12:04:15
n°1353454
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-04-2006 à 12:03:10  profilanswer
 

tiens, voilà.
 
t'achète "klik & play" pour 4,30 € ou tu apprends à programmer
 
http://www.priceminister.com/offer [...] eu-Pc.html

n°1353758
Profil sup​primé
Posté le 25-04-2006 à 17:02:42  answer
 

Je sais programmer mais je ne me suis pas interressé aux base de donnée et je ne veux pas apprendre le SQL et j'ai deja des livres de programmation.

n°1353759
orafrance
Posté le 25-04-2006 à 17:05:59  profilanswer
 

faire des requêtes SQL sans l'apprendre ça risque d'être compliqué :D

n°1353779
betsamee
Asterisk Zeperyl
Posté le 25-04-2006 à 17:15:13  profilanswer
 

orafrance a écrit :

faire des requêtes SQL sans l'apprendre ça risque d'être compliqué :D


le probleme c'est que ce que tu dis est de moins en moins vrai :-(

n°1353816
Profil sup​primé
Posté le 25-04-2006 à 18:18:48  answer
 

En VB.Net j'ai pas besoin tout ce fait automatiquement je connais juste les commandes de bases et ca me suffit ce qui me convient pas c'est la vitesse je pensai que le SQL etait super rapide et tout et tout en tout cas les base Access sont plus rapide.

mood
Publicité
Posté le 25-04-2006 à 18:18:48  profilanswer
 

n°1353869
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-04-2006 à 20:14:21  profilanswer
 

betsamee & eviljojo > hmmmm, un truc simple...
 
vous avez déjà fait des sites web je suppose.
vous avez déjà utilisé FrontPage ou DreamWeaver ?
 
vous savez coder en HTML (ne serait-ce qu'en 4.01) et en JavaScript ?
vous avez vu ce que ces deux softs font ?
 
si vous avez répondu à "oui" à toutes les questions, alors vous avez la réponse évidente qui vient à l'esprit de n'importe qui : abandonnez les idées reçues qu'on n'a pas besoin de connaître le SQL pour attaquer une base de données depuis un programme, quelquesoit l'IDE utilisée.
 
je pense qu'il vaut mieux ne rien connaître à VB.NET, mais maîtriser le SQL, on a plus de chances de faire un truc qui fonctionne correctement que l'inverse. quand aux ressources et performances... surtout dans ton cas eviljojo... tu dis que c'est pour faire un jeu. oublie les bases de données si tu ne veux pas te mettre au SQL.
(ceci dit, pour un jeu, tu peux oublier le SQL aussi, je ne vois pas comment tu vas oser imaginer avoir des perfs correctes en te basant sur un serveur de base de données pour lire et écrire les informations de ton jeu).
 
y'a que les jeux du type "kochonland" qui peuvent vraiment tirer partie d'une base de données, et encore, à condition de s'y mettre sérieusement (jobs, pl/sql, etc.)
 
si c'est juste pour faire des select et des insert monotable, avec des jointures faites en mémoire avec des boucles imbriquées, autant attaquer en direct un fichier "plat", ce sera infiniment plus performant, et au moins on sait exactement ce qu'on fait, surtout quand on ne sais pas ce que font les requêtes générées automatiquement.


Message édité par Arjuna le 25-04-2006 à 20:15:15
n°1353872
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-04-2006 à 20:20:34  profilanswer
 

un autre point eviljojo : tu compares une application access avec un programme qui utilise des requêtes générées automatiquement pour attaquer une base. déjà, ça n'a rien à voir. Access est capable de générer des requête automatiquement vraiment complexes, qui savent notamment tirer partie des optimisations et fonctionnalités du moteur MSJET. ensuite, il faut savoir qu'Access, s'il repose en effet sur un moteur de base de données, ne repose pas sur un serveur de base de données (un serveur, c'est pas une machine, c'est juste une architecture). grace à ça, il permet, si on l'utilise directement depuis une application access, de faire abstraction de toutes les couches haut niveau qui plombent effectivement les performances.
 
si t'as pas à gérer des connexions concurrentes, des transactions, des règles d'intégrités ou règles de gestion complexes, il n'y a absolument aucun besoin d'utiliser un SGBD. au contraire.


Message édité par Arjuna le 25-04-2006 à 20:21:41
n°1353914
Profil sup​primé
Posté le 25-04-2006 à 21:33:58  answer
 

Juste une remarque j'ai pas encore tout lu mais c'est POUR un jeu, c'est une simple base de donnée ou je mettrai des rapports et des coordonnées.
Je n'ai jamais fait de vrai site web juste avec mon pc de bureau que j'ai transformé en serveur avec FTP, dns et une page d'acceuille et j'utilise FrontPage quelque fois vite fais mais je n'ai pas de réelle connexion au net (longue histoire), je ne fais en général que modifié a ma sauce des gros projets sinon j'ai fait des programmes mais je ne bosse pas dessus plus d'un mois (pas le temps je suis au lycée).
Ma base de donnée dans mon cas est sur un ordinateur local pas besoin de la partagé c'est juste pour moi.
Et comme je les dis avant je ne connai pas grand chose au base de donnée.


Message édité par Profil supprimé le 26-04-2006 à 08:14:57
n°1354423
Arjuna
Aircraft Ident.: F-MBSD
Posté le 26-04-2006 à 15:49:19  profilanswer
 

comme je disais : si c'est pour un jeu, oublie les BDD.
et en attendant de faire des études qui te permettent de te mettre pour de bon à l'info, utilise klick & play, ou achète des revues avec des jeux en démo, ça t'occupera :o :p

n°1354532
Profil sup​primé
Posté le 26-04-2006 à 17:05:58  answer
 

C'est pas une base que je mettrai dans un jeu c'est une base qui va me permettre de stocker des rapports pour un jeu mais je crois que je vais mettre cette base sur un serveur pour que les membre de mon equipe puisse y accéder via le net, le programmme ne consiste qu'a accéder a la base de donnée c'est pas un jeux qui utilisera une base, le jeu existe deja et pour mettre et stocker des donner en commun je veut faire une base mais ne vous inquiété pas j 'ai achété un livre pour le SQL, je pense pouvoir m'en sortir maintenant.

n°1354647
Arjuna
Aircraft Ident.: F-MBSD
Posté le 26-04-2006 à 19:00:14  profilanswer
 

n'hésite pas à poser tes questions sur la syntaxe ou la structure de la base.
 
en effet, même si j'imagine que ta base est relativement simple, je doute que ton bouquin traîte de la conception de la base à proprement parler (ça occupe les étudiants en informatique pendant 2 ans, et c'est une des matières où il y a le plus d'heure).
 
quand tu auras avancé un peu, n'hésite pas à poster ton modèle et tes requêtes, qu'on te dise comment les améliorer, et quels index créer.

n°1354752
Profil sup​primé
Posté le 26-04-2006 à 21:29:39  answer
 

Ok, le temps que je lise mon bouquin (qui est niveau debutant/intermediaire).

n°1354766
joce
Architecte / Développeur principal
"BugHunter"
Posté le 26-04-2006 à 21:59:30  profilanswer
 

betsamee a écrit :

le probleme c'est que ce que tu dis est de moins en moins vrai :-(


suffit de regarder phpBB :o

n°1354835
Profil sup​primé
Posté le 27-04-2006 à 00:27:35  answer
 

Le probleme en fait c'est que j'avai pas d'index pour moi la clef primaire etait une sorte d'index, mais il parait que la clef primaire utilise un index implicite est ce qu'il est possible de se servir de cette index pour eviter d'en créé un ? Et je appris a me servir des vues c'est pas mal utile mais par contre je vois pas l'interet des synonymes.

n°1354866
joce
Architecte / Développeur principal
"BugHunter"
Posté le 27-04-2006 à 08:11:00  profilanswer
 

une clef  ou un index c'est synonyme, donc oui la primary key est déjà un index :p

n°1354904
Arjuna
Aircraft Ident.: F-MBSD
Posté le 27-04-2006 à 09:38:36  profilanswer
 

les synonymes, ça sert surtout pour clarifier le code.
 
mettons que dans une table tu as des "tiers". Un tiers, ça peut être un client, comme un fournisseur.
 
dans ton code, tu peux décidé de voir les nom des fournisseurs chez qui un client s'est approvisionné.
 
et là, tu vas avoir plusieurs appels à la table tiers, et celui qui va relire ton code (ou même toi) va avoir du mal à comprendre ce que tu fais.
avec des synonymes, tu appelles un coup le synonyme "client", et un coup le synonyme "fournisseur", et hop ! tout à coup, le code devient lisible.
 
ça sert à rien d'autre qu'à ça ;)

n°1355106
Profil sup​primé
Posté le 27-04-2006 à 13:51:06  answer
 

Ok, merci.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Probleme SQL trop lent

 

Sujets relatifs
problème de copie de structureprobleme d extensions sur upload de fichier
problème exit /bProblème avec IE, (plantage complet sur mon site)
problème page html avecMyeclipseProblème de bordure de tableau CSS sous Internet Explorer
problème de diaporama creé en javascriptProbléme affichage image avec firefox sur smartblog
[Flash] Problème cadre au passage de la sourisProbleme de création "formulaire d'inscription"
Plus de sujets relatifs à : Probleme SQL trop lent


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR