IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Enregistrement de données binaires de taille importante


Sujet :

MS SQL Server

  1. #1
    Membre confirmé Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    337
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 337
    Points : 458
    Points
    458
    Par défaut Enregistrement de données binaires de taille importante
    Bonjour à tous,

    Voici mon problème:

    je sérialise un objet d'une appli directement dans un fichier. Je me rends compte qu'il fait environ 500Ko, ce qui est assez énorme, mais pas étonnant (il contient envirion 15000 coordonées gps).

    Je souhaiterais l'enregistrer en bdd. Pour ce faire, j'ai créé une table qui va bien, avec un champ de type varbinary(max).

    La question que je me pose : sachant que ma table va contenir environ 1 million d'enregistrements de ce type, dois je raisonner ainsi : taille de la base au final : 500Ko * 1million, soit environ 500Go ?

    Merci de vos éclaircissement
    Tant va la cruche à l'eau qu'à la fin y'a plus d'eau.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Voir un peu plus.... sinon, optez pour conserver ces éléments à l'exterieur.
    Lisez ceci : http://sqlpro.developpez.com/cours/stockerimages/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre confirmé Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    337
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 337
    Points : 458
    Points
    458
    Par défaut
    Merci pour ce lien.

    En effet, il est possible de gérer mon problème à la manière de ce tuto. Cependant,quid des performances?
    En ne stockant pas ces données dans la base, mais juste un lien vers celles ci, je gagne en temps de réponse au niveau de mes requêtes. Mais le temps de lecture du fichier/désérialisation peut être vraiment très handicapant.

    Je vais tenter de faire quelques tests afin de trouver la solution la plus adéquate.

    Merci de votre aide.

    PS: je laisse le sujet non résolu au cas ou quelqu'un aurait une autre solution à proposer
    Tant va la cruche à l'eau qu'à la fin y'a plus d'eau.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Les performances sont meilleurs sir les fichiers sont externes à la base car il n'y à pas à les rematérialiser pour chaque utilisation. Cepandant, pour cela vous devez prnedre en compte le fait qu'un SGBDR s'intalle sur un serveur dédié et qu'il vous faudra un serveur de fichier en sus. De plus, suivant l'OS utilisé vous avez intérêt à répartir vos fichiers dans différents répertoires en non en un seul point. Pour ma part je transforme tous mes nons de fichiers en GUID et toutes les extension sont effacées. (cela est quand même conservé dans la base). A partir de là et compte tenu du nombre de fichier et de l'adéquation nb fichier par répertoire, je place cela dans une arborescence à partir d'un point racine du filer.

    Exemple : pas plus de 256 fichier par répertoire. Nombre de fichiers attendus : 1 million. Il me faudra un arbre avec 3 niveau de répertoire pour stocker tous mes fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    0 - point d'entrée
    0/00 -- 256 sous répertoires
    0/01
    ...
    0/FF
    -- pour chaque sous répertoires :
    0/00/000
    0/00/001
    0/00/002
    ...
    0/FF/FFF
    Ainsi un fichier donné renommé par son GUID, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    201663F7-660F-4642-B486-7611FCFF8B35
    Sera placé dans le sous répertoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0/20/166/201663F7-660F-4642-B486-7611FCFF8B35
    Il n'y a donc pas besoin de connaître autre chose que le point d'entrée de l'arbre pour savoir ou se situe le fichier puisque les 5 premiers octets du GUID déterminent le répertoire feuille de stockahe dans l'arbre de stockage.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre confirmé Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    337
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 337
    Points : 458
    Points
    458
    Par défaut
    MErci beaucoup pour ces informations, il ne me reste plus qu'à les mettre en pratique
    Tant va la cruche à l'eau qu'à la fin y'a plus d'eau.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recuperation de donnée de taille importante
    Par idris5 dans le forum Persistance des données
    Réponses: 1
    Dernier message: 19/06/2008, 13h30
  2. Réponses: 1
    Dernier message: 08/11/2007, 12h20
  3. Données ASCII et données binaires
    Par chourmo dans le forum Langage
    Réponses: 2
    Dernier message: 20/06/2005, 12h19
  4. Réponses: 7
    Dernier message: 20/03/2005, 14h53
  5. [PIC] Enregistrement de données permanentes
    Par Grulou dans le forum Autres architectures
    Réponses: 6
    Dernier message: 15/03/2004, 19h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo