效果不错.
这段代码中,实现了计数统计功能,如果用SQL count(*) 也能有这样的速度吗?希望介绍更多关于bitmap方面的内容。
ClassMethod CountNum(Indexname As %String, Columname As %String) As %Integer
{
if Indexname="IndexAge"
{
s tempString="^Signup.PersonnelI('"_Indexname_"',"_Columname_","
} else
{
s tempString="^Signup.PersonnelI('"_Indexname_"',' "_Columname_"',"
}
s Com1="s %ifexist=$data("_tempString_"1))"
s Com1=$TRANSLATE(Com1,"'","""")
Xecute Com1
if %ifexist=0
{
quit 0
}
s Num=0
s i=1
d
{
s Com1="s %tempnum=$bitcount("_tempString_i_"),1)"
s Com1=$TRANSLATE(Com1,"'","""")
Xecute Com1
s Num= Num+%tempnum
s i=i+1
s Com1="s %ifexist=$data("_tempString_i_"))"
s Com1=$TRANSLATE(Com1,"'","""")
Xecute Com1
} while %ifexist'=0
quit Num
}