The below view had a performance issue.Please help how to improve performance. The table student had 150 million records with index on stu_datecreate view dbo.vw_student_prct asselect TOP(100) percent a.totalstudents,b.totalscience students,cast(cast((case when b.totalsciencesstudents is null then 0 else b.totalsciencestudents end)as decimal(8,2)) / (case when a.totalstudents is null then 1 else a.totalstudents end )* 100 as decimal(8,2)) as scienceprnct,------b.st_datefrom(select st_date,count(student_id) as totalstudentsfrom student as studnt1where (ds_name like '%Doere%')group by st_date) as a inner join(select st_date,count(student_id) as totalsciencestudentsfrom student as studntwhere (ss_name like '%physical%')group by st_date) as b on a.student_date = b.student_date inner join(select st_date,count(student_id) as totalMathstudentsfrom student as studnt2where (ss_name like '%math%')group by st_date) as c on c.student_date = b.student_date inner join(select st_date,count(student_id) as totalenglishstudentsfrom student as studnt1where (ts_name like '%eng%')group by st_date) as d on b.student_date = d.student_date inner join(select st_date,count(student_id) as totalspecialstudystudentsfrom student as studnt1where (ts_name like '%speci;%') OR (ts_name like '%speci;%') OR (ts_name like '%speci') OR (ts_name like '%speciA%')OR (ts_name like '%speciD%') OR (ts_name like '%speciTo%') OR (ts_name like '%speciK%')group by st_date) as e on b.student_date = b.student_date inner join(select st_date,count(student_id) as totalkainistudentsfrom student as studnt3where (Ks_name like '%kaini%') and (Lstatus ='Y'AND (kstatus ='Y')OR (ss_name like '%speci;%') and (lstatus = 'Y') AND (kstatus ='Y') OR (ks_name like '%seci') OR (ts_name like '%VteciA%')group by st_date) as f on b.student_date = f.student_date )order by b.st_date