I am running a recursive query to build a hierarchy path for parent-child relationship. Problem is the query runs too slow. It takes 10hours and still not finish. My table EMPLOYEE has 40K rows. I am using SQL Server
Original Table
| Employee | Manager | 
|---|---|
| Luna | Jack | 
| Japan | Jack | 
| Alice | Luna | 
| Alex | Luna | 
| Jessica | Alex | 
Here is my desired table with column the path
| Employee | Manager | Path | 
|---|---|---|
| Jack | Null | Jack | 
| Luna | Jack | Jack - Luna | 
| Japan | Jack | Jack - Japan | 
| Alice | Luna | Jack - Luna - Alice | 
| Alex | Luna | Jack - Luna - Alex | 
| Jessica | Alex | Jack - Luna - Alex - Jessica | 
My query
With emp as (
    select
      Manager as Employee,
      cast(Null as varchar(max)) as Manger,
      cast(Manager as varchar(max)) as path
    from Employee e1
    union all 
    select
      e2.Employee,
      cast(Manager as varchar(max)) as Manger,
      cast((emp.path + '-' + e2.Employee) as varchar(max)) as path
    from employee e2
    join emp on e2.Manager = emp.Employee
)
select *
from emp
Any idea how to improve code efficiency?
 
     
    