Hi all,
Is there option to change Entire Table Cache limit in AX2009?,and i want to check what tables are set in the AOT to ‘EntireTable’ caching
thanks & Regards,
AX Geek
*This post is locked for comments
Hi,
Also, you can execute the following job in ax to get the list of tables where property: CacheLookup is set to EntireTable.
static void TableProperty(Args _args) { #AOT Treenode tableNode; Treenode table; Form actualTable; str TableGroup; str tableName; str tblProperty; int nodeCount; ; tableNode = treenode::findNode(#TablesPath); nodeCount = tableNode.AOTchildNodeCount(); table = tableNode.AOTfirstChild(); while (table) { tableName = table.AOTgetProperty("Name"); actualTable = tableNode.AOTfindChild(tableName); tblProperty = actualTable.AOTgetProperty('CacheLookup'); if (tblProperty == 'EntireTable') info(strFmt("TableName: %1 - CacheLookup: %2", tableName, tblProperty)); table = table.AOTnextSibling(); } }
Yes I tried it. Can you point me the line where you are getting the error.
Have you tried out that ?.but I'm getting errors like this the multi-part identifier could not be bound , what could be the issue?
You can execute the below SQL script on your database(through SSMS) which outputs the table name, Application layer, RowCount and Cache lookup(that is set to the entire table) on them.
Source: (Checking AX2009 ‘EntireTable’ Caching Setup)www.darrencoupland.com/.../checking-ax2009-entiretable-caching-setup
--USE <MyDax09Database> SELECT AOT.TABLENAME ,APPLICATION_LAYER = CASE WHEN AOT.TABID BETWEEN 1 AND 7999 THEN 'SYS' WHEN AOT.TABID BETWEEN 8001 AND 15999 THEN 'GLS' WHEN AOT.TABID BETWEEN 16001 AND 17999 THEN 'DIS' WHEN AOT.TABID BETWEEN 18001 AND 19999 THEN 'LOS' WHEN AOT.TABID BETWEEN 20001 AND 29999 THEN 'BUS' WHEN AOT.TABID BETWEEN 30001 AND 39999 THEN 'VAR' WHEN AOT.TABID BETWEEN 40001 AND 49999 THEN 'CUS' WHEN AOT.TABID BETWEEN 50001 AND 59999 THEN 'USR' WHEN AOT.TABID >= 65000 THEN 'System Table' ELSE Ltrim(Str(AOT.TABID)) END ,ST.ROW_COUNT ,AOT.CACHELOOKUP FROM AOTTABLEPROPERTIES AOT INNER JOIN SYS.DM_DB_PARTITION_STATS ST ON OBJECT_NAME(ST.OBJECT_ID) = AOT.TableName WHERE ST.INDEX_ID < 2 AND AOT.CACHELOOKUP = 4 -- EntireTable Cache Enabled AND ST.ROW_COUNT > 0 -- Ignore Tables with no rows ORDER BY ST.ROW_COUNT DESC
If I remember it right, the limit can't be changed.
You can find all tables with the given value in the CacheLookup property (How to: Search Application Object Properties), for example.
Under review
Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.
As AI tools become more common, we’re introducing a Responsible AI Use…
We are honored to recognize Andrés Arias as our Community Spotlight honoree for…
These are the community rock stars!
Stay up to date on forum activity by subscribing.
Martin Dráb 2 Most Valuable Professional
Guy Terry 2 Moderator
Mea_ 2