What is the difference between simple system view like dbc.tables, X views and V views and which one is better - performace wise?
Does every system view like dbc.tables will always have a corresponding X and V view? I failed to find any X or V view for for dbc.ErrorMsgs?
Not all views need to have X or V views. Having X or V view for dbc.ErrorMsgs doesnt make sense as it is there for all error-codes.
To find a difference between these views, please have a look at the CommentString for all these views, example:
The V, or Modern, views support Extended Object Names of up to 128 Unicode characters in TD 14.10.
The non-V, or Compatibility, views support non-extended Object Names up to 30 Latin/Kanji1 characters. These views will be eliminated in a future release.
See the Data Dictionary and SQL Fundamentals reference manual for more details on view types.
There are two types of views:
Those views that restrict access and those that do not. The
restricted views always have an "X" at the end of the view name. Non-restricted do not have an
"X" at the end of the view name.
Non-restricted view gives any and all information requested but restricted views only gives
information where the user holds certain rights, owns selected objects, or where the user is the
selected object. You must use a WHERE clause when defining restricted views. Restricted views
exist to prevent sensitive information from getting into the wrong hands. It is a security issue
Restricted [x] are the same views as non-restricted but with an appended WHERE clause. The
WHERE clause limits the data returned to only those rows associated with requesting user