SETCURRENTKEY function

The syntax for SETCURRENTKEY is as follows:

[BooleanValue :=] Record.SETCURRENTKEY(FieldName1,[FieldName2], ... )

Because NAV 2017 is based on the SQL Server database, SETCURRENTKEY simply determines the order in which the data will be presented for processing. The actual choice of the index to be used for the query is made by the SQL Server Query Analyzer. For this reason, it is very important that the data and resources available to the SQL Server Query Analyzer are well maintained. This includes maintaining the statistics that are used by the Query Analyzer, as well as making sure efficient index options have been defined. Even though SQL Server picks the actual index, the developer's choice of the appropriate SETCURRENTKEY parameter can have a major effect on performance.

The fields used in the SETCURRENTKEY command do not have to match a key in the table definition. You can also use FlowFields as fields for SETCURRENTKEY, but expect slower performance than doing this.

The indexes that are defined in the SQL Server do not have to be the same as those defined in the C/AL table definition. For example, we can add additional indices in the SQL Server and not in C/AL, disable indices in the SQL Server but leave the matching keys enabled in C/AL, and so on. Any maintenance of the SQL Server indices should be done through the NAV Table Designer using the NAV keys and properties, not directly in SQL Server. Even though the system may operate without problem, any mismatch between the application system and the underlying database system makes maintenance and upgrades more difficult and error-prone.

NAV-defined keys are no longer required to support SIFT indexes because SQL Server can dynamically create required indices. However, depending on dynamic indices for larger datasets can lead to bad performance. Good design is still our responsibility as developers.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.189.177