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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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é
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.
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é
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.
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.
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.
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é
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.
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é
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 ***********************
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 ***********************
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 ***********************