Question

J'ai une table qui a dépassé le million d'enregistrements ... aujourd'hui (tous valables)

J'ai besoin d'accélérer ... le partitionnement de table serait-il la solution? Si oui, puis-je obtenir de l'aide pour créer la requête?

La table a 4 clés de valeur bigint et toutes avec une clé primaire indexée et un index desc on userid, les autres valeurs sont au maximum 139 (il y a un peu plus de 10 000 utilisateurs maintenant)

Toute aide ou direction serait appréciée:)

Était-ce utile?

La solution

il vous suffit probablement d’ajuster vos requêtes et / ou vos index. 1 million d'enregistrements ne devraient pas vous causer de problèmes. J'ai une table avec plusieurs centaines de millions de disques et amp; suis capable de maintenir de bonnes performances. J'ai trouvé le profileur SQL Server très utile avec ce genre de choses. Il est disponible dans SQL Server Management Studio (mais pas la version express, malheureusement). Vous pouvez également faire une requête > Incluez le plan d’exécution réel pour afficher un diagramme indiquant le temps nécessaire à l’exécution de la requête.

Autres conseils

Vous devez examiner vos index et votre charge de travail avant de penser au partitionnement. Si vous avez effectué un grand nombre d'insertions, votre index clusterisé peut être fragmenté.

Même si vous utilisez SQL Server Express, vous pouvez toujours créer un profil à l'aide de cet outil gratuit: Profileur pour Microsoft SQL Server 2005 / 2008 Express Edition

Je suis d'accord avec les autres commentaires. Avec une base de données raisonnablement petite (1MM de la plus grande table), il est peu probable qu'une activité de la base de données génère une charge considérable si les requêtes sont optimisées et si le reste du code n'abuse pas de la base de données avec des requêtes redondantes. C'est une bonne occasion de ressentir l'interaction entre les requêtes de base de données et le reste du code.

Voir mes expériences sur le partitionnement de tables SQL ici [ http://faiz.kera.la/2009/08/02/does-partitioning-improve-performance-for-sql-tables/] . J'espère que cela vous sera utile ... Et pour votre cas, 1M n'est pas un chiffre considérable. Peut-être aurez-vous besoin d'affiner les requêtes plutôt que de procéder à un partitionnement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top