# Introspection levels

> **TL;DR**
> `Database   tool window  | Context menu of a database object | Introspection Level | <level>`

Database users might experience a long [introspection](introspection.html#introspection) time if there are lots of objects (tables, schemas, databases, and so on). 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.

IntelliJ IDEA uses introspection levels to automatically adjust the amount of metadata loaded for a database based on its size. You can also manually select the level that works best for your task.

Introspection levels are supported for the following databases:

* Oracle

* MySQL

* MariaDB

* Microsoft SQL Server

* PostgreSQL

* Amazon Redshift

IntelliJ IDEA has the following introspection levels:

| Level | Level set manually | Level inherited | Description |
| --- | --- | --- | --- |
| Level 1 | ![the Level 1 icon](https://resources.jetbrains.com/help/img/idea/2026.2/icons.expui.levelOneDeclared.svg) | ![the Level 1 icon](https://resources.jetbrains.com/help/img/idea/2026.2/icons.expui.levelOneInherited.svg) |     Names of all supported objects and their signatures, except for names of index columns and names of private package variables.      Column data types are loaded as `unknown`.    |
| Level 2 | ![the Level 2 icon](https://resources.jetbrains.com/help/img/idea/2026.2/icons.expui.levelTwoDeclared.svg) | ![the Level 2 icon](https://resources.jetbrains.com/help/img/idea/2026.2/icons.expui.levelTwoInherited.svg) |     Everything except the source code of the database object. For example, on this level, if you open a routine, you will see its declaration but not its body.       |
| Level 3 | ![the Level 3 icon](https://resources.jetbrains.com/help/img/idea/2026.2/icons.expui.levelThreeDeclared.svg) | ![the Level 3 icon](https://resources.jetbrains.com/help/img/idea/2026.2/icons.expui.levelThreeInherited.svg) | Everything. |

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 of the databases available in IntelliJ IDEA, the IDE supports [fragment introspection](introspection.html#fragment_introspection). 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, IntelliJ IDEA requests the source code at the same moment.

Procedure: Refresh source code of a single object

* Right-click an object and select ![the Refresh icon](https://resources.jetbrains.com/help/img/idea/2026.2/app.expui.general.refresh.svg) Refresh. Alternatively, press `Ctrl+F5` (Windows), `⌘ R` (macOS), `⌃ F5` (IntelliJ IDEA Classic (macOS)), `⌘ R` (macOS System Shortcuts), `Ctrl+F5` (XWin), `Ctrl+F5` (GNOME), `Ctrl+5` (KDE), `Ctrl+F5` (Emacs), `Ctrl+F5` (Sublime Text), `⌘ R` (Sublime Text (macOS)), `Ctrl+F5` (NetBeans), `Ctrl+Alt+R` (Visual Studio), `⌘ ⌥ R` (Visual Studio (macOS)), `Ctrl+F5` (Eclipse), `Ctrl+F5` (Eclipse (macOS)).

![Refresh the source code of a single object in %db_tw_full](https://resources.jetbrains.com/help/img/idea/2026.2/refresh_source_code_of_an_object_in_database_explorer.png)

## Introspection level defaults

By default, IntelliJ IDEA automatically sets the default introspection level for each schema based on the schema type and number of objects. For each schema the introspector counts objects and selects the introspection level using the following thresholds, where N is the number of objects:

| Schema | Level 3 | Level 2 | Level 1 |
| --- | --- | --- | --- |
| Current | N <= 1000 | N <= 3000 | Otherwise |
| Non-current | Never | N <= 3000 | Otherwise |
| System | Never | N <= 100 | Otherwise |

The [current schema](schemas.html#set_default_schema_query_console) is the one the [session](managing-connection-sessions.html) is connected to.

To change the defaults, open the   Data Sources and Drivers  dialog (  `Shift+Enter` (Windows), `⌘ I` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `⌘ I` (Sublime Text (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Visual Studio), `⌘ I` (Visual Studio (macOS)), `Shift+Enter` (Eclipse), `⌘ I` (Eclipse (macOS)) ) , navigate to `Options | Introspection | Default level`, and select the default introspection level for your data source.

![Change the introspection level defaults](https://resources.jetbrains.com/help/img/idea/2026.2/db_oracle_introspection_level_defaults.png)

## Changing introspection levels

> **Note:**
> The lower the level, the faster the introspection.

You can set the introspection level either for the whole database or for a particular schema. Schemas inherit their introspection level from the database, but you can set the level independently for each schema.

For the other database objects, the Introspection Level context submenu displays the current introspection level of the object.

By default, introspection level icons are disabled. You can enable them separately: for schemas and their children (tables, views, routines, and so on).

Procedure: Enable introspection level icons

* On the    Database   tool window    toolbar, click ![the Show Options Menu icon](https://resources.jetbrains.com/help/img/idea/2026.2/app.expui.general.show.svg) View Options and select Introspection Level Icons.

Enabled:

![Introspection level icons are enabled](https://resources.jetbrains.com/help/img/idea/2026.2/enable_introspection_level_icons.png)

Disabled:

![Introspection level icons are disabled](https://resources.jetbrains.com/help/img/idea/2026.2/enable_introspection_level_icons_disabled.png)

Procedure: Change the introspection level

1. Right-click an object in the    Database   tool window    and select the Introspection Level menu.

2. In the Introspection Level menu, select a level you want to apply.

Children inherit a level that is set for a parent.

Note that if you have the Auto sync option enabled in data source settings, the introspection will run as soon as you change the introspection level.  For more information about the option, refer to  [Auto sync in the Data Source and Drivers dialog](data-sources-and-drivers-dialog.html#auto_sync).

[Video](https://resources.jetbrains.com/help/img/idea/2026.2/change_the_introspection_level.mp4)

