cQDCMPCT ;Database Compaction Utility ;cQDCMPCT; Q ; START I '(($P($P($ZV,")",2),"(",1)[" 2008")!($P($P($ZV,")",2),"(",1)[" 2010")) Q I '$D(nmspc) S nmspc=$G(^["%SYS"]cLOG(0,"NAMESPACE",0)) I '$L(nmspc) S nmspc=$ZU(5) K ^[nmspc]ZZLOG("DCOMPACT",$ZCVT($ZU(110),"U")) S K=$TR($ZD(+$H,4,,4),"/",".")_" "_$ZT($P($H,",",2),1) D LOG(K) S K="Database",K=K_$J("",45-$L(K))_"From MB",K=K_$J("",55-$L(K))_"To MB",K=K_$J("",65-$L(K))_"End Time" D LOG(K) S K="_______________________________________" S K=K_$J("",45-$L(K))_"_________",K=K_$J("",55-$L(K))_"_________",K=K_$J("",65-$L(K))_"________" D LOG(K) S totfrom=0,totto=0 K DB D DB^cQ21(.DB,1) S DB="",NS=$ZU(5) ZN "%SYS" F S DB=$O(DB(DB)) Q:DB="" D . S Obj=##class(SYS.Database).%OpenId(DB(DB),,.Status) I ('Status) Q . S K=Obj.Directory,Full=90 . S Status=Obj.Compact(Full,.MbProc,.MbComp,0,$IO) I ('Status) Q . S K=K_$J("",45-$L(K))_$$NMBR(+MbProc),K=K_$J("",55-$L(K))_$$NMBR(MbComp),K=K_$J("",65-$L(K))_$ZT($P($H,",",2),1),K=K_$J("",65-$L(K)) D LOG(K) . s totfrom=totfrom+MbProc,totto=totto+MbComp . K Obj ZN NS S K=$J("",45)_"_________",K=K_$J("",55-$L(K))_"_________",K=K_$J("",65-$L(K))_"________" D LOG(K) S K=$J("",45)_$$NMBR(totfrom),K=K_$J("",55-$L(K))_$$NMBR(totto) i totfrom S K=K_" "_$j(totto*100/totfrom,7,1)_"%" D LOG(K) S K=$TR($ZD(+$H,4,,4),"/",".")_" "_$ZT($P($H,",",2),1) D LOG(K) D REPORT ; YZ Q ; LOG(K) I $L($G(K)) D . N L,VNR . I '$D(nmspc) S nmspc=$G(^["%SYS"]cLOG(0,"NAMESPACE",0)) . I '$L(nmspc) S nmspc=$ZU(5) . S L=$G(DIRNAM,0) S:'$L(L) L=0 . S VNR=$O(^[nmspc]ZZLOG("DCOMPACT",$ZCVT($ZU(110),"U"),L,""),-1)+1 . S ^[nmspc]ZZLOG("DCOMPACT",$ZCVT($ZU(110),"U"),L,VNR)=K Q ; REPORT D INI^cQ6 S QU="SU",PG=$T(+0),PN=$P($T(+1),";",2)_$ZCVT($ZU(110),"U"),B1=PN S I="" F S I=$O(^ZZLOG("DCOMPACT",$ZCVT($ZU(110),"U"),0,I)) Q:I="" S R($O(R(""),-1)+1)=^(I) D D9002^cANEM0(PG,PN,.R) Q ; NMBR(X) Q $J($FN(X,".",0),9) ; ZZ ; 17.01.2012 - 15:58 * Cache-r6.4.9