Mysql 需要提高SQL查询的性能

Mysql 需要提高SQL查询的性能,mysql,sql,database,Mysql,Sql,Database,**您好,任何人都可以帮助提高SQL查询以下的性能:** 有人能帮我改进这个问题吗。这花了22秒的时间。我怎样才能提高?预期结果即将出现,但性能太差 **下面的问题是一个查询,它花费了太多的时间:-** 没有下面的查询需要2或3秒钟,但下面的查询需要。有人能帮我近距离搬走吗 需要改进下面的代码 CASE When ac.accountID=@accountadministratorID Then @siteadmin When @ssrstand

**您好,任何人都可以帮助提高SQL查询以下的性能:** 有人能帮我改进这个问题吗。这花了22秒的时间。我怎样才能提高?预期结果即将出现,但性能太差
**下面的问题是一个查询,它花费了太多的时间:-** 没有下面的查询需要2或3秒钟,但下面的查询需要。有人能帮我近距离搬走吗

需要改进下面的代码

CASE 
            When ac.accountID=@accountadministratorID Then @siteadmin
            When @ssrstandarduser in (Select roleID from TB_ROLE where roleID in (Select roleID from TB_USERASSIGN where userAccountID in 
                (Select userAccountID from TB_USERACCOUNT where userID =us.userID)) and accountID=ac.accountID) then 'Y'
            ELSE  'N'
            END AS [SSR Standard User],





Whole SQL Query Below:-
DECLARE @saiportal varchar(15) = 'ABC Portal', 
                @aceoandcbasaig  varchar(15) = 'NonHuman',
                @imshuman varchar(15) = 'Human',
                @siteadmin varchar(15) = 'Admin',
                @ssruser varchar(15) = 'PUser',
                @standarduser varchar(15) = 'RUser',
                @accountadministratorID int =2015039, 
                @ssrstandarduser int = 540502, 
                @ssraccessfeatureid int =15, 
                @userStatusTrue varchar(15)= 'TRUE',
                @userStatusFalse varchar(15) = 'False', 
                @imsNonHuman varchar(15) = 'PCOE%',
                @imsNonHumans varchar(15) = 'CBder%',
                @commSiteId int = 54
        select distinct base.[Endpoint],base.[Account Name],base.[Account Disabled],base.[EmployeeID],base.[Email],base.[LANID],base.[Given Name],base.[Surname],base.[Last Logon Date],
        base.[Created Date],base.[Last Password Changed],base.[Account Description],base.[Super Type],base.[Sub Type],
        CASE 
        When base.[SSR ACCESS] = @siteadmin then  @siteadmin
        When base.[SSR ACCESS] = 'Y' and base.[SSR Standard User]='Y' then 'SSR User'
        Else 'Standard User'
        END
        as [Relationship Based Entitlement value],
        base.[Value-based Entitlement]
        from (
        Select DISTINCT(@saiportal) as [Endpoint], 
        us.userName as [Account Name], 
        CASE
        when us.userStatusID IN(1,2) then @userStatusTrue
        ELSE @userStatusFalse
        END AS        [Account Disabled],
                      '' as [EmployeeID],
                      con.emailAddress as [Email],
                      '' as [LANID],
                      con.givenNames as [Given Name],
                      con.surname as [Surname], 
                      CONVERT(varchar,us.LoginDate,105) as [Last Logon Date],
                      CONVERT(varchar,us.createdDT,105) as [Created Date],
                      CONVERT(varchar,cmu.passwordChangeDT,105) as [Last Password Changed],
                      ac.accountName as [Account Description],
        CASE
        when us.userName in (@imsNonHuman,@imsNonHumans) then @aceoandcbasaig
        ELSE @imshuman
        END AS [Super Type],
        '' as [Sub Type],
        CASE 
        When ac.accountID=@accountadministratorID Then @siteadmin
        When 
        af.featureID=@ssraccessfeatureid then 'Y'
        ELSE  'N'
        END AS [SSR ACCESS],
        af.featureID,
        CASE 
        When ac.accountID=@accountadministratorID Then @siteadmin
        When @ssrstandarduser in (Select roleID from TB_ROLE where roleID in (Select roleID from TB_USERASSIGN where userAccountID in 
            (Select userAccountID from TB_USERACCOUNT where userID =us.userID)) and accountID=ac.accountID) then 'Y'
        ELSE  'N'
        END AS [SSR Standard User],
                      '' as [Value-based Entitlement]
        from TB_USER us inner join TB_ACCOUNT ac on ac.accountID=us.primaryAccountID 
        inner join TB_USERSTATUS uss on uss.userStatusID=us.userStatusID
        Inner join TB_CONTACT con on con.contactID=us.contactID
        Inner join TB_CSMUSER cmu on cmu.userID=us.userID
        inner join TB_USERACCOUNT ua on ua.userID=us.userID
        inner join TB_USERASSIGN uas on uas.userAccountID=ua.userAccountID 
        left join TB_ACCOUNTFEATURE af on af.accountID= ac.accountID and  af.featureID= @ssraccessfeatureid
        where siteID = @commSiteId and us.userStatusID in (1,2,3))base 

投票结束,因为范围太广。这取决于您检查执行计划,并至少给我们一个关于性能瓶颈可能在哪里的提示。看起来更像sqlserver/mssql而不是mysql。