j'ai une table avec 50 millions de lignes
le champ qui m'interesse est un champ "nom" texte varchar
256
mon programme doit faire des recherches ou des ajouts
de "nom" dans cette table
si j'ajoute, il faut que j'evite les doublons.
pour ce faire, le mieux est 1) de mettre un index unique
sur le champs qui provoquera une erreur en cas d'ajout
d'un doublon ou 2) faire une recherche avant?
sur ce genre de table tres grande, est ce qu'il y a un
type d'index particulier a utiliser? est ce qu'il vaut
mieux diviser la table en tables + petites ou chacune
correspondrait a une lettre de l'alphabet par exemple...
d'une facon generale, est ce qu'il y a une facon
d'optimiser ca lorsque la base est sur un seul PC.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred BROUARD
dans tous les cas ajouter un index !
En effet la chercher avant sans index se fera en parcourant oute la table...
Donc, la contrainte d'unicité qui provoque la pose de l'index est la meilleure des choses.
A +
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
alain duhamel a écrit:
bonjour,
j'ai une table avec 50 millions de lignes le champ qui m'interesse est un champ "nom" texte varchar 256
mon programme doit faire des recherches ou des ajouts de "nom" dans cette table
si j'ajoute, il faut que j'evite les doublons. pour ce faire, le mieux est 1) de mettre un index unique sur le champs qui provoquera une erreur en cas d'ajout d'un doublon ou 2) faire une recherche avant?
sur ce genre de table tres grande, est ce qu'il y a un type d'index particulier a utiliser? est ce qu'il vaut mieux diviser la table en tables + petites ou chacune correspondrait a une lettre de l'alphabet par exemple... d'une facon generale, est ce qu'il y a une facon d'optimiser ca lorsque la base est sur un seul PC.
dans tous les cas ajouter un index !
En effet la chercher avant sans index se fera en parcourant oute la table...
Donc, la contrainte d'unicité qui provoque la pose de l'index est la meilleure
des choses.
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
alain duhamel a écrit:
bonjour,
j'ai une table avec 50 millions de lignes
le champ qui m'interesse est un champ "nom" texte varchar
256
mon programme doit faire des recherches ou des ajouts
de "nom" dans cette table
si j'ajoute, il faut que j'evite les doublons.
pour ce faire, le mieux est 1) de mettre un index unique
sur le champs qui provoquera une erreur en cas d'ajout
d'un doublon ou 2) faire une recherche avant?
sur ce genre de table tres grande, est ce qu'il y a un
type d'index particulier a utiliser? est ce qu'il vaut
mieux diviser la table en tables + petites ou chacune
correspondrait a une lettre de l'alphabet par exemple...
d'une facon generale, est ce qu'il y a une facon
d'optimiser ca lorsque la base est sur un seul PC.
En effet la chercher avant sans index se fera en parcourant oute la table...
Donc, la contrainte d'unicité qui provoque la pose de l'index est la meilleure des choses.
A +
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
alain duhamel a écrit:
bonjour,
j'ai une table avec 50 millions de lignes le champ qui m'interesse est un champ "nom" texte varchar 256
mon programme doit faire des recherches ou des ajouts de "nom" dans cette table
si j'ajoute, il faut que j'evite les doublons. pour ce faire, le mieux est 1) de mettre un index unique sur le champs qui provoquera une erreur en cas d'ajout d'un doublon ou 2) faire une recherche avant?
sur ce genre de table tres grande, est ce qu'il y a un type d'index particulier a utiliser? est ce qu'il vaut mieux diviser la table en tables + petites ou chacune correspondrait a une lettre de l'alphabet par exemple... d'une facon generale, est ce qu'il y a une facon d'optimiser ca lorsque la base est sur un seul PC.
merci et si j'ajoute un enregistrement en doublon
le mieux c'est de le faire et d'intercepter l'erreur
ou alors de faire dabord une recherche pour savoir si il existe deja dans la table?
c quoi le + mieux des deux?
-----Message d'origine----- dans tous les cas ajouter un index !
En effet la chercher avant sans index se fera en
parcourant oute la table...
Donc, la contrainte d'unicité qui provoque la pose de
l'index est la meilleure
des choses.
A +
-- Frédéric BROUARD, MVP SQL Server. Expert SQL /
spécialiste Delphi, web
Livre SQL - col. Référence :
http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros :
http://sqlpro.developpez.com
************************ www.datasapiens.com
*************************
alain duhamel a écrit:
bonjour,
j'ai une table avec 50 millions de lignes le champ qui m'interesse est un champ "nom" texte
varchar
256
mon programme doit faire des recherches ou des ajouts de "nom" dans cette table
si j'ajoute, il faut que j'evite les doublons. pour ce faire, le mieux est 1) de mettre un index
unique
sur le champs qui provoquera une erreur en cas d'ajout d'un doublon ou 2) faire une recherche avant?
sur ce genre de table tres grande, est ce qu'il y a un type d'index particulier a utiliser? est ce qu'il vaut mieux diviser la table en tables + petites ou chacune correspondrait a une lettre de l'alphabet par exemple... d'une facon generale, est ce qu'il y a une facon d'optimiser ca lorsque la base est sur un seul PC.
.
merci et si j'ajoute un enregistrement en doublon
le mieux c'est de le faire et d'intercepter l'erreur
ou alors de faire dabord une recherche pour savoir
si il existe deja dans la table?
c quoi le + mieux des deux?
-----Message d'origine-----
dans tous les cas ajouter un index !
En effet la chercher avant sans index se fera en
parcourant oute la table...
Donc, la contrainte d'unicité qui provoque la pose de
l'index est la meilleure
des choses.
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL /
spécialiste Delphi, web
Livre SQL - col. Référence :
http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros :
http://sqlpro.developpez.com
************************ www.datasapiens.com
*************************
alain duhamel a écrit:
bonjour,
j'ai une table avec 50 millions de lignes
le champ qui m'interesse est un champ "nom" texte
varchar
256
mon programme doit faire des recherches ou des ajouts
de "nom" dans cette table
si j'ajoute, il faut que j'evite les doublons.
pour ce faire, le mieux est 1) de mettre un index
unique
sur le champs qui provoquera une erreur en cas d'ajout
d'un doublon ou 2) faire une recherche avant?
sur ce genre de table tres grande, est ce qu'il y a un
type d'index particulier a utiliser? est ce qu'il vaut
mieux diviser la table en tables + petites ou chacune
correspondrait a une lettre de l'alphabet par exemple...
d'une facon generale, est ce qu'il y a une facon
d'optimiser ca lorsque la base est sur un seul PC.
le mieux c'est de le faire et d'intercepter l'erreur
ou alors de faire dabord une recherche pour savoir si il existe deja dans la table?
c quoi le + mieux des deux?
-----Message d'origine----- dans tous les cas ajouter un index !
En effet la chercher avant sans index se fera en
parcourant oute la table...
Donc, la contrainte d'unicité qui provoque la pose de
l'index est la meilleure
des choses.
A +
-- Frédéric BROUARD, MVP SQL Server. Expert SQL /
spécialiste Delphi, web
Livre SQL - col. Référence :
http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros :
http://sqlpro.developpez.com
************************ www.datasapiens.com
*************************
alain duhamel a écrit:
bonjour,
j'ai une table avec 50 millions de lignes le champ qui m'interesse est un champ "nom" texte
varchar
256
mon programme doit faire des recherches ou des ajouts de "nom" dans cette table
si j'ajoute, il faut que j'evite les doublons. pour ce faire, le mieux est 1) de mettre un index
unique
sur le champs qui provoquera une erreur en cas d'ajout d'un doublon ou 2) faire une recherche avant?
sur ce genre de table tres grande, est ce qu'il y a un type d'index particulier a utiliser? est ce qu'il vaut mieux diviser la table en tables + petites ou chacune correspondrait a une lettre de l'alphabet par exemple... d'une facon generale, est ce qu'il y a une facon d'optimiser ca lorsque la base est sur un seul PC.
.
lionelp
Bonjour,
faites l'insertion si erreur alors la gérer de manière appropriée ou bien (dans le cas insert ou update) faire une mise à jour si pas de ligne affectée faire l'insertion
Dans les 2 cas la transaction qui encapsule ce traitement ne sera pas rollbackée.
Et surtout, mettre un index unique.
Cordialement, LionelP
"" wrote:
merci et si j'ajoute un enregistrement en doublon
le mieux c'est de le faire et d'intercepter l'erreur
ou alors de faire dabord une recherche pour savoir si il existe deja dans la table?
c quoi le + mieux des deux?
>-----Message d'origine----- >dans tous les cas ajouter un index ! > >En effet la chercher avant sans index se fera en parcourant oute la table... > >Donc, la contrainte d'unicité qui provoque la pose de l'index est la meilleure >des choses. > >A + > >-- >Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web >Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html >Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com >************************ www.datasapiens.com ************************* > >alain duhamel a écrit: >> bonjour, >> >> j'ai une table avec 50 millions de lignes >> le champ qui m'interesse est un champ "nom" texte varchar >> 256 >> >> mon programme doit faire des recherches ou des ajouts >> de "nom" dans cette table >> >> si j'ajoute, il faut que j'evite les doublons. >> pour ce faire, le mieux est 1) de mettre un index unique >> sur le champs qui provoquera une erreur en cas d'ajout >> d'un doublon ou 2) faire une recherche avant? >> >> sur ce genre de table tres grande, est ce qu'il y a un >> type d'index particulier a utiliser? est ce qu'il vaut >> mieux diviser la table en tables + petites ou chacune >> correspondrait a une lettre de l'alphabet par exemple... >> d'une facon generale, est ce qu'il y a une facon >> d'optimiser ca lorsque la base est sur un seul PC. >> >> >> >> >> >> >> >> >> > >. >
Bonjour,
faites l'insertion si erreur alors la gérer de manière appropriée
ou bien (dans le cas insert ou update)
faire une mise à jour si pas de ligne affectée faire l'insertion
Dans les 2 cas la transaction qui encapsule ce traitement ne sera pas
rollbackée.
Et surtout, mettre un index unique.
Cordialement,
LionelP
"anonymous@discussions.microsoft.com" wrote:
merci et si j'ajoute un enregistrement en doublon
le mieux c'est de le faire et d'intercepter l'erreur
ou alors de faire dabord une recherche pour savoir
si il existe deja dans la table?
c quoi le + mieux des deux?
>-----Message d'origine-----
>dans tous les cas ajouter un index !
>
>En effet la chercher avant sans index se fera en
parcourant oute la table...
>
>Donc, la contrainte d'unicité qui provoque la pose de
l'index est la meilleure
>des choses.
>
>A +
>
>--
>Frédéric BROUARD, MVP SQL Server. Expert SQL /
spécialiste Delphi, web
>Livre SQL - col. Référence :
http://sqlpro.developpez.com/bookSQL.html
>Le site du SQL, pour débutants et pros :
http://sqlpro.developpez.com
>************************ www.datasapiens.com
*************************
>
>alain duhamel a écrit:
>> bonjour,
>>
>> j'ai une table avec 50 millions de lignes
>> le champ qui m'interesse est un champ "nom" texte
varchar
>> 256
>>
>> mon programme doit faire des recherches ou des ajouts
>> de "nom" dans cette table
>>
>> si j'ajoute, il faut que j'evite les doublons.
>> pour ce faire, le mieux est 1) de mettre un index
unique
>> sur le champs qui provoquera une erreur en cas d'ajout
>> d'un doublon ou 2) faire une recherche avant?
>>
>> sur ce genre de table tres grande, est ce qu'il y a un
>> type d'index particulier a utiliser? est ce qu'il vaut
>> mieux diviser la table en tables + petites ou chacune
>> correspondrait a une lettre de l'alphabet par exemple...
>> d'une facon generale, est ce qu'il y a une facon
>> d'optimiser ca lorsque la base est sur un seul PC.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>.
>
faites l'insertion si erreur alors la gérer de manière appropriée ou bien (dans le cas insert ou update) faire une mise à jour si pas de ligne affectée faire l'insertion
Dans les 2 cas la transaction qui encapsule ce traitement ne sera pas rollbackée.
Et surtout, mettre un index unique.
Cordialement, LionelP
"" wrote:
merci et si j'ajoute un enregistrement en doublon
le mieux c'est de le faire et d'intercepter l'erreur
ou alors de faire dabord une recherche pour savoir si il existe deja dans la table?
c quoi le + mieux des deux?
>-----Message d'origine----- >dans tous les cas ajouter un index ! > >En effet la chercher avant sans index se fera en parcourant oute la table... > >Donc, la contrainte d'unicité qui provoque la pose de l'index est la meilleure >des choses. > >A + > >-- >Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web >Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html >Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com >************************ www.datasapiens.com ************************* > >alain duhamel a écrit: >> bonjour, >> >> j'ai une table avec 50 millions de lignes >> le champ qui m'interesse est un champ "nom" texte varchar >> 256 >> >> mon programme doit faire des recherches ou des ajouts >> de "nom" dans cette table >> >> si j'ajoute, il faut que j'evite les doublons. >> pour ce faire, le mieux est 1) de mettre un index unique >> sur le champs qui provoquera une erreur en cas d'ajout >> d'un doublon ou 2) faire une recherche avant? >> >> sur ce genre de table tres grande, est ce qu'il y a un >> type d'index particulier a utiliser? est ce qu'il vaut >> mieux diviser la table en tables + petites ou chacune >> correspondrait a une lettre de l'alphabet par exemple... >> d'une facon generale, est ce qu'il y a une facon >> d'optimiser ca lorsque la base est sur un seul PC. >> >> >> >> >> >> >> >> >> > >. >