Server Side Performance – I/O Effect


Hi Friends,

I just want to share a bit of activity that we performed a couple of days before to enhance NAV and Server Performance and which literally ended with huge effect. One thing we came across was the I/O Operation which we should always consider if Server side starts performing a bit weird then before and that was our case. The I/O Operation with Read(B/sec) was more then 50 ,00,000. Check the below Screenshot


As I said the first entry was 50,00,000 which was sucking the whole systems Memory, CPU and RAM. After a bit of operation we came to a point were we got to know that there’s a SQL Procedure running which was consistently doing some kind of operation on tempdb of SQL. So now our next search operation initiated from SQL side and after struggling a bit we came to the real Query and the Procedure which was doing so. Thanks to below SQL query which dragged our attention there to that specific Stored Procedure..


After executing the above query we get the exact Stored Procedure and later on we eventually got to know that this SP was manipulating something on 500000 data and it was running every one minute as a SQL Job. Turned out to be Nightmare for us. 🙂



Virtual Table – AllObj

Hey Friends,

This Post is about Virtual Table – AllObj. AllObj virtual table contains information about all the Objects that NAV consists of. Here you can go and drag information on the Object level. Though there’s exist a virtual Table named Object as well from where you can drag multiple information but this depends on all on all your need and the information you want to pull off.


Object Type – Type of the Object – Table Data, Table, Report etc.

Object ID – ID of the Object.

Object Name – Name of the Object.



Virtual Table – System Object


Hey Friends,

As we all know there are Virtual Tables as well as System Tables. So for recognizing System Objects there’s a Virtual table – System Object. This simply consists of all the System tables which are available in the NAV System.


This Virtual Table consists of the above Fields with information as –

Object – Either it’s a Table, Page,Report and so on.

ObjectID – Unique ID of the Object.

Object Name – Name of the Object.

Object Caption – Caption of the Object.


Virtual Table – Key


Hey Friends,

This Post is about Virtual Table – KeyKey virtual table contains information about all the keys that are defined in each and every table in the database. Again like if you want to get the complete information of the keys the Standard and the one you created then can hit this virtual table. As we all know Sum Index Fields makes our work a way more easier but it’s too been recommended not to use too much of this as it reduces performance as that of Flow Fields.

So if you want to calculate how much Sum Index Fields you have made in the entire Database then you can hit this virtual table.


This virtual table gives you the following Information’s –

TableNo –  ID of the Table.

No. – Its a sequential ID assigned for multiple fields of the same Table.

TableName – Name of the Table.

Key – Combination of Fields that makes the Key.

SumIndexField – SumIndexFields defined for that Key.

SQLIndex –  Actual fields that have been defined in Microsoft Dynamics NAV and are used in the corresponding index on SQL Server instead of those defined in the key.

Enabled – Either the Field is Enabled or not.

MaintainSQLIndex – MaintainSQLIndex property has been activated or not. This field can be modified.

MaintainSIFTIndex – MaintainSIFTIndex property has been activated. This field can be modified.

Clustered – Either the Key is Clustered or not. This field can be modified.



Virtual Table – Field


Hey Folks,

This Post is about Virtual Table – Field. Field virtual table contains information about all the fields of all the Tables in the Database. If at any time you want the complete specification of the Fields from development perspective then this virtual Table is for you. You can even use this Virtual Table for comparing the fields of different tables for any sort of queries you have.


This Table consists of following specifications –

TableNo –  ID of the Table.

No. – Its a sequential ID assigned for multiple fields of the same Table.

TableName – Name of the Table.

FieldName – Name of the Field.

Type – Data Type of the Field.

Len – Length of the field(Bytes).

Class – Class of the field – FlowField,FlowFilter.

Enabled – Whether the field is enabled.

Type Name –  Data type assigned to the field with Length(Code,Text).

Field Caption –  Caption of the field in the language that has been selected.

RelationTableNo – ID of the Table on to which the Field is related.

RelationFieldNo – Number of the field in another table that the field is related to.

SQLDataType – Data type assigned to code fields.


Virtual Table – Table Information



This Post is about a Virtual Table – Table Information. Table Information gives the complete information of the Database Tables. You can Commutatively come to know about the load of each and every Tables of the Database in a single go.


Company Name – Name of the Company.

Table No. – Unique ID of the Table.

Table Name – Name of the Table.

No. of Records – Number of Records in the Table.

Record Size – It’s an average size of the Record, calculated as 1024 x Size (KB)/Records.

Size (KB) – Space Occupied by the database in Table(KB).



Virtual Table – Drive

Hey Friends,

This Post is all about a Virtual Table – Drive. Though many of us might not got the need to have an experience of this but this seems very useful if you have a very least access on your computer Drives and you don’t know which drive has how much of space and either it’s Removable or not.

Let’s see make a Page from the standard Dynamics NAV Wizard.


Drive The available Drive in the System.

Removable Indicates whether the disk is removable (a CD-ROM or similar) or a Hard Disk.

Size(KB) – Total size of the disk.

Free(KB) Amount of free space on the disk


Send SMS – Dynamics NAV


Hey Friends,

Today I am here to discuss as how to send SMS from NAV. Before I go further and discuss the Process I just want to let everybody know that it’s not something which is free but we need to buy some credits. 🙂 🙂

There are many ways to do this but I will show with the help of a Portal I.E.

Now first of all you need to do a Signup on this site and have your own Login and Password. Once you have your ID and Password and you are logged in you will have a look and feel of something like this.


Now as you can see you will have initially 0.00 credits which you need to buy some from Buy Credits menu. Once you have a credit you need to set-up an Email. Press Email to SMS and open the page.


Now you need to press Click here as highlighted above. Here you need to put in an Email which will act as a confidential email and will hold the senders ownership.


Now you need to enter the Email address and password here and press Update button. Update button will generate a SMTP authentication ID.

You are done with the settings. Now you need to send an email from this authenticated Email ID to someone like this :-

To – can add multiple recipients here)

Subject – Add the Password here which you wrote in the above screenshot. This one is for Authentication

Body – Your Message.

You can open Please read the help in the first screenshot to check further rules and guidelines.



Create SQL Job – Stored Procedure


Hey Friends,

Sometimes a situation comes were NAV Job stops and we keep on debugging but yet unable to stump the real cause. Even after continuously tracing in Event Viewer we dint found any solid reason for this. So to solve my scenario I decided to write a SP(Stored Procedure) which eventually I attached it as a SQL Job which is supposed to be one of the best scheduler in Programming World.

So here I am to just share with all you as How to Make a SQL Job. 

Login to your SQL Management Studio. In Object explorer you will find SQL SERVER AGENT. Make sure you have a level of Permission in SQL otherwise you wont be able to see this. Right Click on Job and make a new Job.


Now you will be able to see a separate Page – Here you have to fill some Information as Name of your JOB, Owner(By Default it will be yours) etc. – Make it enabled as shown in the below Screenshot.


Now you have to click on Steps – Here you need to fill some mandatory information as Database Name, Command – Procedure Name.

This EXEC command is going to execute your Procedure on regular Intervals.


You may click on Advanced on the left Panel and make your Job some more conditional based as what you want to do on Success or on failure of the Job.


Now you need to navigate to Schedule menu(Second Screenshot). This is the place where you need to define what will be the recurring timing your Job OR at what intervals or conditions you need to execute your Job.


Now you may navigate to Alert menu if you want to make your Job a level more customized. Here you can define Job to raise an alert if the message contains some specific value. If not needed you can skip this. I dint mentioned this in my Job.


Now there is a separate menu for notification which you can use use for mail transmissions if Job fails with additional more services.


Now simply press OK. Open the first Screenshot page and press View History. Here you can see the logs of your running Job.