Nous exécutons la base de données de notre application sur la boîte dédiée exécutant uniquement SQL Server 2005. Ce serveur DB a 32 Go de RAM ... et le fichier de base de données lui-même est seulement 6 Go.SQL Server 2005 "Pin" données en mémoire
Je voudrais forcer plusieurs des tables fortement lues/interrogées dans le tampon de mémoire SQL pour augmenter la vitesse. Je comprends que SQL Server est vraiment bon pour garder les données nécessaires en mémoire cache une fois qu'il est lu à partir du disque ... Mais nos clients préféreraient probablement que leur requête s'exécute rapidement la première fois. "Performances les plus rapides le Deuxième Time" n'est pas exactement un produit phare. En deçà de l'ancienne commande DBCC "Pin Table".
J'ai écrit un processus "CacheTableToSQLMemory" qui traverse tous les index d'une table (non clusterisé &), effectuant un "Select *" dans une table Temp. J'ai planifié l'Agent SQL pour exécuter un Proc de "mettre beaucoup de tables de cache" toutes les 15 minutes pour essayer de garder des pages dans la mémoire.
Cela fonctionne dans une large mesure .. mais même après avoir mis en cache toutes les tables pertinentes d'une requête, l'exécution d'une requête a encore augmenté le nombre de pages mises en cache pour cette table. alors c'est plus rapide la 2ème fois. pensées?
Nous exécutons PAE & AWE. SQL est configuré pour utiliser entre 8 & 20 Go de RAM.
'PAE et AWE set' comme dans 'Je suis toujours en train d'exécuter une instance x86 merde avec 2 Go d'espace d'adressage virtuel'? –
... Je sais ... Je travaille à pousser une mise à niveau du système d'exploitation à travers aussi ... –
Quelle version de Windows? 64-bit j'espère, sinon la réponse est _so_ évident que c'est drôle – smirkingman