2010-05-07 4 views
0

J'ai concevoir une base de données. Theres pas de colonnes avec l'indexation, ni aucun code pour l'optimisation. Je suis certain que je devrais indexer certaines colonnes puisque je les recherche beaucoup.Comment puis-je tester ma vitesse DB? (Apprentissage)

Ma question est COMMENT dois-je tester si une partie de ma base de données sera lente? ATM J'utilise sqlite et je vais passer à MS Sql ou MySql en fonction de mon hébergeur. La création de 100 000 enregistrements dans chaque table sera-t-elle suffisante? Ou ce sera toujours rapide en sqlite et je dois faire 1mil? Ai-je besoin de 10mil avant qu'une base de données devienne lente?

Comment puis-je le chronométrer? J'utilise C# alors devrais-je utiliser StopWatch ou existe-t-il une fonction ADO.NET/Sqlite que je devrais utiliser?

Répondre

2

C'est vraiment une question de surveillance des choses au fil du temps car les plans d'exécution optimaux changeront à mesure que vous ajoutez plus de données. Si vous voulez tester, alors 10 millions de lignes devraient être suffisantes pour rendre visibles la plupart des problèmes de performance, mais vous devrez également essayer de remplir les données de test avec les mêmes caractéristiques de cardinalité que les données réelles. SQL Server intègre de nombreuses fonctions de surveillance des performances (vues de gestion dynamique, XEvents, SQL Trace/Profiler), mais je ne sais pas à quel point vous seriez en mesure d'accéder si vous utilisez une solution hébergée. Pour surveiller les performances en dehors de la base de données, ADO.NET prend en charge le suivi, mais je ne l'ai jamais utilisé moi-même.

0

A propos de votre deuxième question SqlLite est presque toujours plus rapide que MSSQL depuis votre base de données SqlLite est en mémoire dans la base de données MSSQL est sur un disque dur

+0

je ne pense pas que son vrai que SQLite est en mémoire. J'ai créé une table d'entrée de million et l'utilisation de RAM n'a pas augmenté. –

+0

il peut être défini comme une base de données en mémoire http://www.sqlite.org/inmemorydb.html –