2009-09-06 8 views
1

Je conçois une application web à grande échelle avec environ 30 tables, dont plus de 2/3 sont liées les unes aux autres. J'utilise ASP.NET MVC, Linq to SQL avec SQL Server 2008. Ces tables sont destinées à contenir des milliers d'enregistrements.Linq to SQL, SQL Server 2008 et l'optimisation

En tant que programmeur, sur quoi dois-je me concentrer pour optimiser la base de données et les requêtes depuis et vers Linq? Est-ce que vous avez une recommandation sur un livre qui couvrirait généralement les sujets sur lesquels je dois me concentrer lorsque je construis cette application ou sur des articles qui toucheraient les sujets de base?

Je connais SQL Profiler (existe-t-il une version gratuite?) Et j'ai lu brièvement sur les index, y at-il plus?

De même, existe-t-il des «meilleures pratiques» pour concevoir une application pilotée par une base de données à grande échelle lorsqu'il s'agit de compter ou d'interroger plusieurs lignes, de rechercher des champs «texte» dans des lignes?

apprécie l'aide

Répondre

2

Un vieil adage informatique va: ne pas prématurément optimiser, bien! Commencez par écrire votre code et assurez-vous qu'il est solide et fonctionne - et seulement lorsque vous voyez et identifiez les goulets d'étranglement, puis entrez, mesurez, modifiez, mesurez encore, optimisez, mesurez encore une fois.

Mais si vous avez besoin d'optimiser, ou si vous voulez éviter les goulots d'étranglement en premier lieu, je suis totalement d'accord avec "nouveau en ville" - la base de données est la base, si vous visez, votre LINQ ou application en plus de cela aidera vraiment beaucoup.

Obtenez votre fond de teint droit et bon:

  • assurez-vous d'utiliser les types appropriés
  • ne font pas les colonnes inutilement grandes
  • obtenir les indices bons en place
    • clé primaire sur chaque table
    • ne pas faire une colonne GUID votre clé de cluster en aucune circonstance
    • relations clés étrangères où ils ont du sens
    • mettre un index sur vos colonnes de clé étrangère)
  • éviter toute duplication de données

et ainsi de suite - les bases de la conception de base de données solide.

Seulement avec celui en place pouvez-vous même commencer à penser à l'optimisation de votre application et le code d'accès aux données.

Marc

+0

Je suppose que je vais obtenir mon application entièrement fonctionnelle avant de commencer à se concentrer sur l'optimisation. – Omar

2

Il n'y a presque rien de spécial LINQ pour vous dire. L'architecture commune et les optimisations de base de données s'appliquent.

Découvrez par exemple cette excellente question: What are your most common sql optimizations?