Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Allocation des ressources de la machine

4 réponses
Avatar
Marc-André
Bonjour à tous,

J'ai une procédure stockée planifiée sur le serveur de base de données, ce
dernier et connecté à un serveur Web contenant des pages ASP. Voici le
problème : au moment de l'exécution de ma procédure stockée, les pages du
serveur Web sont indisponibles sur internet.
La question est de savoir comment pourrais-je allouer les ressources de la
machine (processeur et mémoire) à l'execution de la procédure stockée, de
façon à rendre disponible les pages web qui font des requêtes sur la base de
données.
En vous remerciant d'avance.

Marc-André

4 réponses

Avatar
Christian Robert
C'est un peu flou pour répondre... Il s'agit probablement d'un problème de
verroux auquel cas upgrader la matériel pourrait aider mais pas beaucoup...
Pour mieux répondre :

- Quel est la durée d'execution de cette tâche ?
- Que fait elle exactement ? (eventuellement code de celle-ci)
- Par pages bloquées est ce que cela veut dire qu'elles passent en timeout
ou génèrent des erreurs ?

Cordialement


------------------------------
Christian Robert
Winwise
MCT - MCDBA - MCSD.Net


"Marc-André" a écrit :

Bonjour à tous,

J'ai une procédure stockée planifiée sur le serveur de base de données, ce
dernier et connecté à un serveur Web contenant des pages ASP. Voici le
problème : au moment de l'exécution de ma procédure stockée, les pages du
serveur Web sont indisponibles sur internet.
La question est de savoir comment pourrais-je allouer les ressources de la
machine (processeur et mémoire) à l'execution de la procédure stockée, de
façon à rendre disponible les pages web qui font des requêtes sur la base de
données.
En vous remerciant d'avance.

Marc-André


Avatar
BVesan
Bonjour,
De deux choses l'une:
-Soit le serveur Web est complètement indisponible lorsque cette procédure
stockée est utilisée
- Soit seule l'ouverture de la la page exécutant la procédure stockée
semble figée.

Dans le premier cas, il s'agit d'un problème de contention sur le (les) CPU
de la machine ou les systèmes disques ( serveur Web et instance SQL Server
ont chacun leur mémoire allouée et ne devraient pas entrer en concurrence sur
cette ressource).
Il peut être alors intéressant de cloisonner au mieux les deux applications
(une des règles de base concernant les perfs sur un moteur de bases de
données consiste à ne faire tourner une instance que sur une machine dédiée),
en jouant avec le "processor affinity" (dédier un processeur à SQL Server, et
l'autre au serveur Web) et en déposant sur des disques séparés les fichiers
de bases de données et le reste des fichiers.

Dans le second cas, c'est simplement que le temps d'exécution de la
procédure stockée est considérée comme trop longue. Une optimisation
classique (création d'indexes pertinents, ré-écriture de la procédure
stockée, statistiques à jour sur les tables utilisées) aboutira à un temps de
réponse inférieur et une consommation plus faible (tout du moins sur une
durée plus courte) des ressources physiques.
Avatar
GNocent
Bonjour,

Soit il s'agit d'un problème de locks sur des objets, dans ce cas, le code
de vos pages web ne rend pas la main ou part en timeout. Dans ce cas, la
solution est l'étude du code pour limiter la portée des locks (mettre des
indexes plus cohérents pour mieux cibler, revoir la logique des procs,
améliorer le code)
Pour détecter ce type de problèmes, vous pouvez utiliser le "current
activity" d'enterprise manager pour commencer, et ensuite affiner avec des
détails de plans d'exécution ou des traces.
(Ce problème peut être aussi une conséquence de la deuxième hypothèse
ci-dessous)

Soit il s'agit d'un saturation de la machine (CPU à 100%, file d'attente
disque très importante), auquel cas, cela doit probablement provenir de la
procédure stockées du batch (si le reste du temps tout fonctionne). Là
encore, le meilleur vecteur d'amélioration sera la réécriture de certaines
requête et l'indexation plus intelligente.
Pour vérifier cette hypothèse, utilisez le performance monitor de Windows
(usage CPU, file d'attente disques, nb d'I/O).
Puis pour optimiser le code problématique, le profiler vous permettra de
trouver les portions de votre procédure qui sont consommatrices, enfin à
l'aide des plans d'exécution du query analyzer vous pourrez comprendre
pourquoi et y remédier.

Quoi qu'il en soit, un upgrade de machine est rarement une bonne première
piste, mieux vaut d'abord comprendre pourquoi le problème se pose et le
qualifier (de plus, les autres optimisations sont souvent bien plus efficace
en termes de gains).
Si vous voulez limiter la "casse" en attendant, si le problème est de type
saturation machine, vous pouvez limiter par exemple le nombre de CPU utilisés
par votre instance SQL (voir le CPU affinity, par clic droit sur le nom
d'instance dans enterprise manager), évidemment au cas où vous avez au moins
2 processeurs !

Guillaume.
======================== "Marc-André" a écrit :

Bonjour à tous,

J'ai une procédure stockée planifiée sur le serveur de base de données, ce
dernier et connecté à un serveur Web contenant des pages ASP. Voici le
problème : au moment de l'exécution de ma procédure stockée, les pages du
serveur Web sont indisponibles sur internet.
La question est de savoir comment pourrais-je allouer les ressources de la
machine (processeur et mémoire) à l'execution de la procédure stockée, de
façon à rendre disponible les pages web qui font des requêtes sur la base de
données.
En vous remerciant d'avance.

Marc-André


Avatar
SQLpro [MVP]
Le server Web est-il installé sur la même machine que lle serveur SQL ?

Marc-André a écrit :
Bonjour à tous,

J'ai une procédure stockée planifiée sur le serveur de base de données, ce
dernier et connecté à un serveur Web contenant des pages ASP. Voici le
problème : au moment de l'exécution de ma procédure stockée, les pages du
serveur Web sont indisponibles sur internet.
La question est de savoir comment pourrais-je allouer les ressources de la
machine (processeur et mémoire) à l'execution de la procédure stockée, de
façon à rendre disponible les pages web qui font des requêtes sur la base de
données.
En vous remerciant d'avance.

Marc-André




--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************