All tables have Primary index Cluster index Caching


Self diagnostics  this Script will check if all tables have Primary index Cluster index Caching


//NOTE: temp tables are skipped

static void TableTuningTest(Args _args)
{
    boolean         skipEmptyTables = true;
    boolean         result;
    treeNode        treeNode;
    SysDictTable    sdt;
    str             TableAndCound;
    int             recordCount;
    boolean         skipEmptyrecordCount = false;
    treeNodeIterator treeNodeIterator =TreeNode::findNode("\\Data Dictionary\\Tables").AOTiterator();
    ;
    treeNode = treeNodeIterator.next();
    setPrefix("Tuning");
    while (treeNode)
    {
        sdt  = new SysDictTable(tablename2id(treeNode.AOTname()));
        recordCount = sdt.recordCount();
           if(!sdt.isTmp() && (!skipEmptyTables || (recordCount != 0))  )
        {
            TableAndCound = treeNode.AOTname()+ ' ('+ int2str(sdt.recordCount())+')';
            setPrefix(TableAndCound);
            result = false;
            result = result || sdt.treeNode().AOTgetProperty("CreatedDateTime") == "yes" ? true : false;
            result = result || sdt.treeNode().AOTgetProperty("ModifiedDateTime")== "yes" ? true : false;
            if(result && sdt.treeNode().AOTgetProperty("CreateRecIdIndex") == "No" )
            {
                setPrefix(TableAndCound);
                info("RecIdIndex");
            }
            if(sdt.treeNode().AOTgetProperty("CacheLookup") == "None")
            {
                setPrefix(TableAndCound);
                info("CacheLookup");
            }
            if(sdt.treeNode().AOTgetProperty("ClusterIndex") == "")
            {
                setPrefix(TableAndCound);
                Warning("ClusterIndex");
            }
            if(sdt.treeNode().AOTgetProperty("PrimaryIndex") == "")
            {
                setPrefix(TableAndCound);
                Error("PrimaryIndex");
            }
        }
        treeNode = treeNodeIterator.next();
    }
}

Comments