I have an activity which uses a class in which two keys are defined which are not pzinskey.
During obj-open-by-handle operation inside the acitivity, ofcourse the pzinskey is used as handle. But it comes to my notice that the pzinskey is not defined as a key for the class , neither is the db table having an index on pzinskey.
In such cases, will there be performance issues when we use obj-open-by-handle when pzinskey is not explicity indexed in database nor is a key in the class.
I just got little confused, are you referring to "Externally Mapped Class" or OOTB class? If it's an OOTB class, you need to worry about the indexing of the pzInsKey.
It's a handle, sometimes known as an internal key, is a permanent representation of an object instance key in an external form. A handle uniquely identifies the instance, though in a format that differs from the normal presentation. Internally, the pzInsKey property holds the handle value for the object.
A handle identifies the class, certain key parts, and (for rules and some other classes) the creation date and time of a single instance. Handle values are in the format:
CLASSNAME CLASSKEY ! NAME #YYYYMMDD T HHMMSSTTTTMMM GMT
The primary key column for almost all Pega Platform database tables is named pzInsKey, which corresponds to the pzInsKey property known as the internal key or handle. This permanent key is generated internally by concatenating other properties in the instance and, for rules, from the date and time the object is first saved. The key uniquely defines an instance.
Because the initial portion of the pzInsKey value contains the object class (the value of property pxObjClass), objects of different classes can be stored together in one table with no chance of key collisions.