一个新闻系统,分类比较多,大大小小的分类有上千个
大概10来个1级类,100个子类,还有剩下的都是孙类
下面是一个存储过程
exec Select_News_List @PageIndex = 1, @PageSize = 40, 
@StrWhere =
 ' (type_id IN (SELECT Type_ID FROM f_getNewsChild( 1)))'下面是自定义函数,用来取得分类CREATE function f_getNewsChild(@Type_ID VARCHAR(10))
returns @t table(Type_ID VARCHAR(10),Type_ParenetID VARCHAR(10),Level INT)
as
begin
    declare @i int,@ret varchar(8000)
    set @i = 1
    insert into @t select Type_ID,Type_ParenetID,@i from T_News_Type where Type_ParenetID = @Type_ID
    
    while @@rowcount<>0
    begin
        set @i = @i + 1
        
        insert into @t 
        select 
            a.Type_ID,a.Type_ParenetID,@i 
        from 
            T_News_Type a,@t b 
        where 
            a.Type_ParenetID=b.Type_ID and b.Level = @i-1
    end
    return
end
数据大概有几十完条,但是每次查询的时候,速度都非常慢,请问上面的查询条件能否优化?谢谢