The Art Of Nav – NAV 5.00SP1 Stats
Today I made some statistics about NAV 5.00SP1 tables. I know that the stats have no purpose, but you can see on them how complex the system is. It can help to someone, who just want to know, how much is something used in standard etc. There are the tables:
Tab 1) Field relations by type:
|
Relation Type |
Count |
|
AVERAGE |
5 |
|
COUNT |
109 |
|
EXIST |
135 |
|
LOOKUP |
291 |
|
MAX |
9 |
|
MIN |
14 |
|
SUM |
415 |
|
-SUM |
70 |
|
TABLEREL |
5468 |
|
-EXIST |
1 |
|
Grand Total |
6517 |
A you can see, there is 6517 relations between fields (TableRel, SUM, Lookup etc.) or tables (Exist, Count). Of course, most of them are table relations and SUM flowfields.
Tab 2) Field data types:
|
Data type |
Count |
|
Code |
6377 |
|
Decimal |
2984 |
|
Text |
2310 |
|
Integer |
1603 |
|
Boolean |
1452 |
|
Option |
1279 |
|
Date |
1025 |
|
Time |
127 |
|
DateFormula |
101 |
|
DateTime |
57 |
|
BLOB |
48 |
|
GUID |
17 |
|
RecordID |
6 |
|
Duration |
2 |
|
TableFilter |
1 |
|
BigInteger |
1 |
|
Grand Total |
17390 |
From this table you see that most used data type is Code – of course, because most of relations are made through some code and the code fields are used everywhere…
Second is Decimal – yes, we are working with ERP which counts money, inventory…
Tab 3) Field data types including length:
|
Filed type and length |
Count |
|
Code10 |
3387 |
|
Decimal |
2984 |
|
Code20 |
2871 |
|
Integer |
1603 |
|
Boolean |
1452 |
|
Option |
1279 |
|
Date |
1025 |
|
Text50 |
973 |
|
Text30 |
672 |
|
Text80 |
253 |
|
Text250 |
188 |
|
Time |
127 |
|
DateFormula |
101 |
|
Text20 |
87 |
|
DateTime |
57 |
|
BLOB |
48 |
|
Text10 |
39 |
|
Code30 |
35 |
|
Code3 |
21 |
|
Text100 |
20 |
|
Code250 |
19 |
|
Code50 |
17 |
|
Code100 |
17 |
|
GUID |
17 |
|
Text65 |
16 |
|
Text64 |
8 |
|
Text38 |
7 |
|
Text200 |
6 |
|
Text249 |
6 |
|
RecordID224 |
6 |
|
Text5 |
6 |
|
Code80 |
5 |
|
Text119 |
4 |
|
Text70 |
3 |
|
Text99 |
2 |
|
Text90 |
2 |
|
Text19 |
2 |
|
Text150 |
2 |
|
Text199 |
2 |
|
Code130 |
2 |
|
Duration |
2 |
|
BigInteger |
1 |
|
Text7 |
1 |
|
Text127 |
1 |
|
Text3 |
1 |
|
Text14 |
1 |
|
Text151 |
1 |
|
Text63 |
1 |
|
Code2 |
1 |
|
Text131 |
1 |
|
Text220 |
1 |
|
Code98 |
1 |
|
Code1 |
1 |
|
TableFilter |
1 |
|
Text118 |
1 |
|
Text149 |
1 |
|
Text31 |
1 |
|
Text32 |
1 |
|
Grand Total |
17390 |
Most used is Code with length 10 – all basic lists are referred by this data type. But newer the longer fields are used (Code 20), which have enough space for possible longer codes. I personally when I create new table, I use the Code 20 to precede possible problems with additional extension of the field in future. Very interesting are field length at the end of the table like Text118, Code1, Text63…
Tab 4) Overall stats:
|
Tables |
918 |
|
Fields |
17390 |
|
Fields per table (Avg) |
18,94 |
|
Average count of relations per table |
7,099 |
|
Percentage of fields referring other fields |
37,47% |
|
Max fields in table |
176 (Tab 39 - Purchase Line) 175 (Tab 27 - Item) |
|
Max table relations per table (All) |
93 (Tab 18 - Customer) |
|
Max table relations per table (Table Rel) |
66 (Tab 81 - Gen. Journal Line) |
|
Max table relations per table (FlowFields) |
63 (Tab 18 - Customer) |
|
Most referred table |
266 (Tab 349 - Dimension Value) 258 (Tab 308 - No. Series) 235 (Tab 15 - G/L Account) |
I think that the last table doesn’t need any explanation. In average, if you change some field’s length, there is more than 1:2 chances that you need to change length of another field which refer to the first field.
I hope, that you made better picture of the complexity of whole Microsoft Dynamics NAV system. May be that you now understand, why the people around this system needs long time to gather enough experiences to understand the system. It is why the NAV is so great product, because regardless this complexity, it is easy to change and develop additional parts. Do not forget that these stats are just for the basic version of the system. If you add all addons which customer needs for his work, these stats can go much higher…
I want to congratulate to all consultants and developers, which are able to understand the system, which knows, how it works, and which are able to correctly do their every-day work with this huge amount of information. May be that this stats will help customers to understands, why sometimes there are some bugs in the system, why some things needs more time to think them out than making them.
We will see how these stats will change with new versions.