2009-10-31 2 views
2

Entre le code (C#, Java) et la base de données (SQL) où devrions-nous trier ou filtrer?Entre le code (C#, Java) et la base de données (SQL) où devrions-nous trier ou filtrer?

En code, cela signifie avoir une seule procédure stockée pour extraire toutes les données de la base de données, puis filtrer mes données (dans la couche métier ou de données).

Dans la base de données, cela signifie avoir une procédure stockée. Dans ce cas, le code (couche de données) envoie mes paramètres de filtre à la procédure stockée qui prend soin de renvoyer une donnée allégée.

Quoi de mieux et dans quelles circonstances?

Répondre

3

Cela dépend vraiment de la nature de l'utilisation. Exemple:

  • Taille des données
  • Fetch Fréquence
  • Réponse temps à l'utilisateur
  • Etc etc

En général, laissez le serveur DB faire autant de données fonctionnement liées que vous pouvez, ils sont optimisés pour cela. Mais ce n'est pas une règle définie. Dans de nombreux cas, les lots de données sont récupérés en une fois, présélectionnés et triés/filtrés sur la couche d'interface utilisateur/côté application. Par exemple. Pour le tri de petites tables sur des pages Web pour un temps de réponse plus rapide.

1

En général, vous devez créer votre requête dans votre code et laisser le serveur DB faire le travail. Pour un cas spécifique, vous pouvez également décider de filtrer dans votre classe client.

Questions connexes