SQl Server CTE递归如何提高大数据的性能?

SQl Server CTE递归如何提高大数据的性能?,sql,sql-server,recursion,common-table-expression,Sql,Sql Server,Recursion,Common Table Expression,我的CTE递归脚本的性能很差。执行12925条记录花了1:23分钟。我可以添加一些分页,或者任何可以提高性能的东西吗。这是我的密码 WITH cte(GenealogyID,GenealogySponsorId,GenealogyTypeId,CustomerId,Level) AS ( SELECT e.Id AS GenealogyID, e.GenealogySponsorId, e.GenealogyTypeId,

我的CTE递归脚本的性能很差。执行12925条记录花了1:23分钟。我可以添加一些分页,或者任何可以提高性能的东西吗。这是我的密码

WITH cte(GenealogyID,GenealogySponsorId,GenealogyTypeId,CustomerId,Level) AS
(   
    SELECT
        e.Id AS GenealogyID, 
        e.GenealogySponsorId,
        e.GenealogyTypeId, 
        e.CustomerId,
        0 AS Level 
    FROM Genealogy AS e
    WHERE e.CustomerId = 53591  AND e.GenealogyTypeId = 50

    UNION ALL 

    SELECT 
        child.Id AS GenealogyID,  
        child.GenealogySponsorId, 
        child.GenealogyTypeId, 
        child.CustomerId,
        Level+1 
    FROM Genealogy child 
    JOIN cte parent on parent.GenealogyID = child.GenealogySponsorId
    where child.GenealogyTypeId > 0 AND child.CustomerID <> 53591
)
select count(*) from cte

愿这个博客对你有所帮助。。。http://blog.sqlauthority.com/2012/04/24/sql-server-introduction-to-hierarchical-query-using-a-recursive-cte-a-primer/Look 在执行计划中。你的族谱表上有索引吗?是的,主键作为索引