J'ai une requête qui prend beaucoup de temps à exécuter. Je ne sais pas comment puis-je réduire ceci. Non seulement la durée de cette requête prend également une utilisation PSQL à High CPU.
Je dois sélectionner une colonne unique La requête est la suivante: p> Que dois-je changer pour rendre cela plus rapide? P> p> sip_username code> comme des noms différents sur différentes conditions. En raison de cette exigence, j'ai créé des sous-requêtes, p>
3 Réponses :
Vous devez créer un index sur une colonne P>
Et puis vous interrogez-vous plus rapidement ... p>
Vous pouvez essayer ce code:
SELECT sip_username,
product_code,
display_name as dname,
user_id as uid,
location_id,
tenant_id,
(CASE product_code
WHEN 'bizfms' THEN
sip_username
ELSE Null
END) AS bizfms_username,
(CASE product_code
WHEN 'mlc' THEN
sip_username
ELSE Null
END) AS mlc_username,
(CASE product_code
WHEN 'bizrtm' THEN
sip_username
ELSE Null
END) AS bizrtm_username
FROM admin_users_product AS A
WHERE A.location_id = 18
Vous pouvez essayer ceci.
Cas n'existe pas d'index, vous devez créer comme malcioné par miamiq abdullayev.
Veuillez supprimer Tag:
SQL-Server code>.Veuillez exécuter la requête avec le préfixe
Expliquer (analyser, tampons) code> et ajouter la sortie à votre question. Cela vous aidera à vous montrer comment résoudre vous-même des questions similaires à l'avenir.Quelle est la clé primaire du tableau
admin_users_product code>? Est-ce que la conditiona.location_id = 18 code> renvoie plusieurs lignes avec différentsproduit_code code> etsip_username code> valeurs?Pourriez-vous poster des échantillons de données et une sortie attendue pour eux? Il serait beaucoup plus facile de vous aider.
Vos sous-demandes n'ont pas de sens. La condition de renvoi de la ligne est
sip_username = A.SIP_USName code> de sorte que le SIP_USName renvoyé pour chaque sous-requête sera identique à celui deA.SIP_USNAME CODE> - que vous avez déjà . Donc, je ne comprends pas ce que vous essayez de réaliser avec les sous-demandes. On dirait que vous pouvez facilement les supprimer@A_HORSE_WITH_NO_NAME Touche principale est ID et A.Location = 18 retournera plusieurs rangées avec un code de produit différent
Mais l'affichage du
sip_username code> n'a pas vraiment de sens alors, comme cela sera toujours le même nom d'utilisateur que celui indiqué dans la liste de sélection "principale"