IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

requête SQL qui ne marche pas en tant que vue (view)


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut requête SQL qui ne marche pas en tant que vue (view)
    Bonjour,

    J'ai une vue qui fait partie dun package SSIS. Cette vue n'est plus exécutée (et donc le package est bloqué) depuis quleques jours. Elle retourne le message suivant:
    Erreur d'exécution SQL
    Instruction SQL exécutée: SELECT DISTINCT .......................
    Source d'erreur: .Net SqlClient Data Provider
    Message d'erreur: Expiration du délai d'attente. Le délai d'attente s'est écoulé vant la fin de l'opération ou le serveur ne répond pas.

    Mais quand je copie le code de la vue et je l'exécute en tant que simple requête, ça marche.
    Est ce que vous pouvez m'aider sur ce problème ?
    Merci.

  2. #2
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Lors de l'exécution de la requête en direct, les temps de réponse est-il correct ou très long ?
    Alexandre Chemla - Consultant MS BI chez Masao

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 847
    Points : 52 955
    Points
    52 955
    Billets dans le blog
    6
    Par défaut
    ce n'est vraisemblablement pas la vue qui est en question, mais la connexion de votre paquetage au serveur.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Le temps de réponse est de 3 minutes environ...

    Je ne pense pas que ça soit un problème de connexion, car les autres packages continuent à fonctionner normalement...

  5. #5
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    Bonjour,
    donnes nous ton code qui exécute la requete et la requete en question. Ce sera un peu plus facile pour t'aider.
    Pas de messages privés sur des questions techniques ! Je suis trop nul pour vous aider

  6. #6
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    En fait, la vue fait partie d'un package SSIS, qui fait un mappage entre cette vue et les colonnes d'une table. Cette table est vidée au début du package et est remplie par cette vue.

    Voici le code de la requête:
    SELECT DISTINCT
    ProjectID, ProjetDescription AS Description, dbo.getPourcentage(ProjectID) AS PourcentageSaisi, dbo.DGetCoutTotalByProject(ProjectID) AS CoutReal,
    dbo.DGetCoutTotalByProjectPrev(ProjectID) AS CourPrev, dbo.DGetCoutTotalByProjectMateriel(ProjectID) AS CoutMaterielReal,
    dbo.DGetCoutTotalByProjectMaterielPrev(ProjectID) AS CoutMaterielPrev, dbo.GetDateDebutPourUnProjet(ProjectID) AS DateDebut,
    dbo.GetDateFinPourUnProjet(ProjectID) AS DateFin
    FROM dbo.Projets
    WHERE (ProjectID IN
    (SELECT ProjectID
    FROM dbo.ProjectFactsIServices)) OR
    (ProjectID > 2003)

    Je vous remercie pour votre aide.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut
    Quel est le temps de réponse de la vue si tu fait un SELECT de cette vue ?
    Est-ce que les index sont fragmentés ? Est-ce que les statistiques sont à jours.

    Petits conseil : utilise la clause WHERE EXISTS au lieu du IN et met un WITH(NOLOCK) dans la sous-requête, étant donné que tu vérifie seulement la présence de données dans la table ProjectFactsIServices.

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 847
    Points : 52 955
    Points
    52 955
    Billets dans le blog
    6
    Par défaut
    Ce qui pénalise fortement cette requête c'est la présence de très nombreuses UDF. Les fonctions utilisateurs sont à éviter TOTALEMENT si vous voulez de la performances. Remplacez les par des jointures. En effet en utilisant des UDF vous faites de l'itératif, pas de l'ensembliste. Dès lors aucun index ne peut être utilisé et le moteur parcoure les tables par balayage (scan).

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [AC-2007] requête suppression qui ne marche pas : erreur de syntaxe
    Par tibofo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/09/2009, 11h00
  2. [MySQL] Requête SQL UPDATE ne marche pas avec Mozilla
    Par souffirst dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 01/11/2008, 15h24
  3. Interbase requête SQL qui ne fonctionne pas
    Par colorid dans le forum InterBase
    Réponses: 6
    Dernier message: 20/11/2007, 17h36
  4. [MySQL] requête upload qui ne marche pas en local
    Par stuef dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/03/2006, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo