Pour un aperçu rapide, j'ai une application que je supporte actuellement qui fonctionne sur Oracle 10.2 avec des DBA dédiés. Dans le passé, quand je voulais créer une table qui stockait des données binarys (BLOB dans leur monde – cela pouvait être des files PDF, DOCX, etc.), les DBA "partitionnaient" toujours le stockage de données de cette colonne / table ( ne sais pas lequel) à une zone physique distincte sur le disque. Leur raisonnement était que cela permettait de s'assurer que les performances n'étaient pas affectées par le fait qu'un grand nombre de files binarys étaient stockés dans le même file que le rest des données où les searchs se produisaient.
Ma question est de savoir si je devrais ou non faire quelque chose de similaire à cela pour SQL Server (2012, bien que je doute que la version count)? Si oui, comment pourrais-je m'y prendre et quelle est la terminologie appropriée pour le faire?
Vous pouvez créer un groupe de files séparé dont les files se trouvent sur un volume différent, puis créer explicitement les tables qui stockent vos données LOB sur ce groupe de files. La désignation de groupe de files fait partie des instructions CREATE TABLE et CREATE INDEX , la valeur par défaut étant le groupe de files PRIMARY.
Vous avez également différents choix pour stocker des files dans SQL Server, en 2008+ vous pouvez utiliser FILESTREAM (voir aussi ici ) et en 2012 vous pouvez utiliser FILETABLE . Cependant, dans la plupart des cas, j'ai eu du mal à stocker le file dans la database; il est souvent less problématique de stocker le file sur le système de files et un pointeur dans la database.
Et vous pouvez lire mes opinions datées et longues dans cet article de la FAQ que j'ai écrit il y a 12 ans.
En gardant à l'esprit que certaines technologies ont changé (évidemment, FILESTREAM et FILETABLE n'étaient pas disponibles à l'époque), certains points restnt pertinents …
Et enfin, quelques conseils sur MSDN sur la gestion des files / groupes de files qui pourraient être utiles à la lecture.