Determining if a key is used

kurbeinkurbein Member Posts: 8
edited 2006-02-12 in Navision Attain
Hi

I want to fine tune our Navision installation to improve performance. According to the docs, I should disable unused table keys. But, how do I know if a key is ever used?

So far, I found only three ways:

1) Browsing through hundreds of forms/reports and thousands of lines of C/AL code looking what keys are used

2) Disable the keys I don't think are used and wait for my telephone to catch fire when users start yelling at me about strange error messages.

3) Disable ALL keys (in a test env.) and try to reproduce every possible use users can give to the system (and you know, users are soooooo predictable #-o ).

Obviously, none of them are very appealing to me. Is there any other way I could do this?

TIA

Comments

  • ara3nara3n Member Posts: 9,256
    You can use Developer toolkit. You can select the key and search for where used. If you don't have it. Tell me the table or the key and I'll give you the list.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • kurbeinkurbein Member Posts: 8
    Hi

    Is the Developer Toolkit available to everyone or must one be NSC?

    Can I find it on the CD?

    You REALLY wouldn't want me to ask you to give me the keys, given that I want to perform the check on EVERY table in the system... :D

    Thanks for the help.
  • DenSterDenSter Member Posts: 8,307
    You really don't need to do this on every table, only the ones that you use. There is just no point in optimizing the Job Ledger table if you don't use jobs. And even then you should have enormous gains just by doing some ledger tables, and dimension value tables.
  • kurbeinkurbein Member Posts: 8
    Yeah, well, may be "every table" is a little overkilling. :oops: I meant that I want to be very thourough in the optimizing...

    Actually what I plan to do is sort tables by # of records, and optimize in that order. Obviously, G/L and Dimension tables will come first, then probably some customer related ones, then some of the secondary ledgers (Job, Bank, etc). Config, empty and seldom-used tables will probably be spared.

    By the way, another (related) question comes to mind. Docs also mention disabling unused flowfields. Is Developer Toolkit also the solution for them?
  • ara3nara3n Member Posts: 9,256
    Yes you can look at any field and use where used as well.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • krikikriki Member, Moderator Posts: 9,112
    Developer toolkit : http://www.mibuso.com/forum/viewtopic.php?t=9723

    The FIRST question is: are you working with a Navision DB or a SQL-DB?
    The answer on this changes a lot on how you should proceed.

    For SQL, it is a lot easier: you don't maintain some keys SQL does not use.
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • kurbeinkurbein Member Posts: 8
    Using Native-DB
  • krikikriki Member, Moderator Posts: 9,112
    Some tips for finetuning:
    -Check if all programs use the correct index
    -Check if the indexes that are in use are REALLY usefull. In a lot of projects, I noticed that a lot of indexes are created for just 1 or 2 report. Rewriting them (using temptables) I generally can delete the index and losing only little speed in generating the report. But gaining speed for the writing-processes.
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • kinekine Member Posts: 12,562
    Optimize only tables, on which you have some performance problems! You can use client monitor (and the extended client monitor objects) to look up the tables where are some performance problems...
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
Sign In or Register to comment.