PyCharm
 
Get PyCharm

Introspection levels

Last modified: 10 January 2025

Database users might experience a long introspection time if there are lots of objects (tables, schemas, databases, and so on). Introspection is the process of getting the metadata of the database, such as object names, types of columns, and source code. PyCharm uses this information to provide coding assistance, navigation, and search.

For some databases, system catalogs are relatively slow, and the introspection is even slower if a user has no permissions for accessing fast catalogs.

Usually, for daily work and coding assistance, there is no need to load sources of all the objects. In many cases, having database names will be enough for proper code completion and navigation. PyCharm has the following introspection levels:

Icons represent the introspection level: the more the pill is filled, the higher the level. Also, color matters: a blue icon means that the introspection level is set directly, grey means that it is inherited.

For some databases, a fragmental introspection is also implemented. It is the ability to retrieve metadata for one single object. This helps in situations where the metadata (usually, the source code) is explicitly requested. For example, if you double-click a view, but the introspection level is low, PyCharm requests the source code at the same moment.