{"id":394307,"date":"2023-10-05T13:19:02","date_gmt":"2023-10-05T12:19:02","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=datagrip&#038;p=394307"},"modified":"2025-09-17T13:46:34","modified_gmt":"2025-09-17T12:46:34","slug":"datagrip-2023-3-eap-is-open","status":"publish","type":"datagrip","link":"https:\/\/blog.jetbrains.com\/en\/datagrip\/2023\/10\/05\/datagrip-2023-3-eap-is-open","title":{"rendered":"DataGrip 2023.3 EAP is Open"},"content":{"rendered":"\n<p>Hello! We\u2019re starting our 2023.3 Early Access Program (EAP) and, as usual, we invite you to try the latest features and improvements we\u2019re adding to DataGrip ahead of the official release.&nbsp;<\/p>\n\n\n\n<p>Let\u2019s take a look at what\u2019s inside <a href=\"https:\/\/www.jetbrains.com\/datagrip\/nextversion\/\" data-type=\"link\" data-id=\"https:\/\/www.jetbrains.com\/datagrip\/download\/\" target=\"_blank\" rel=\"noopener\">the first EAP build<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">[Oracle]: Introspection level defaults<\/h2>\n\n\n\n<p>DataGrip takes a long time to introspect schemas in Oracle because Oracle catalogs are very slow. To address this problem, <a href=\"https:\/\/www.jetbrains.com\/datagrip\/whatsnew\/2021-3\/#version-2021-3-introspection\" target=\"_blank\" rel=\"noopener\">introspection levels were introduced<\/a>.&nbsp;<\/p>\n\n\n\n<p>By default, the highest level was selected, which meant that selected schemas immediately began to be introspected at the third level, which was slow.<br>Also, some users were unaware that the introspection level setting existed at all.<\/p>\n\n\n\n<p><br>In 2023.3, DataGrip prioritizes the user experience and performance over the fullness of functionality. The default value for the introspection level now is<em> Auto Select<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1380\" height=\"1392\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/10\/image-10.png\" alt=\"\" class=\"wp-image-394448\"\/><\/figure>\n\n\n\n<p>Our new approach is to set the default introspection level for each schema based on the schema type and number of objects.<\/p>\n\n\n\n<p>We assumed that users most often work with the current schema, less often with other schemas, and very rarely with system ones. The current schema is the one the Oracle session is connected to.<\/p>\n\n\n\n<p>For each schema the introspector counts objects and selects the introspection level using the following thresholds, where N is the number of objects:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Schema<\/th><th class=\"has-text-align-left\" data-align=\"left\">Level 3<\/th><th class=\"has-text-align-left\" data-align=\"left\">Level 2<\/th><th class=\"has-text-align-left\" data-align=\"left\">Level 1<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\">Current<\/td><td class=\"has-text-align-left\" data-align=\"left\">N \u2264 1000   <\/td><td class=\"has-text-align-left\" data-align=\"left\">1000 &lt; N \u2264 3000<\/td><td class=\"has-text-align-left\" data-align=\"left\">N &gt; 3000<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Non-current<\/td><td class=\"has-text-align-left\" data-align=\"left\">Never   <\/td><td class=\"has-text-align-left\" data-align=\"left\">N \u2264 3000<\/td><td class=\"has-text-align-left\" data-align=\"left\">N &gt; 3000<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">System<\/td><td class=\"has-text-align-left\" data-align=\"left\">Never   <\/td><td class=\"has-text-align-left\" data-align=\"left\">N \u2264 100<\/td><td class=\"has-text-align-left\" data-align=\"left\">N &gt; 100<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"> <\/figcaption><\/figure>\n\n\n\n<p><br>We&#8217;ve also implemented fragmental introspection \u2013 the ability to retrieve metadata for one single object. This helps in situations where the metadata (usually, the source code) is explicitly requested by the user.<br><br>For example, if you double click on a view, but the introspection level is low, DataGrip requests the source code at the same moment. This is more similar to how all other database tools work.<\/p>\n\n\n\n<p>The automatic level detection is enabled by default. If you want DataGrip to work as before, go to <em>Data Source properties | Options | Introspection | Default level | Level 3.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">[SQLite] Warning if using WSL path<\/h2>\n\n\n\n<p>Unfortunately, it is impossible to work with the SQLite database located under a WSL path. The reason is that WSL doesn&#8217;t respect the <a href=\"https:\/\/www.sqlite.org\/lockingv3.html\" target=\"_blank\" rel=\"noopener\">SQLite file locking mechanism<\/a>. For now, the only available solution for DataGrip is to show a warning in that particular case.<br><br><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/09\/KR3MvYIhPVHzaKrHCXxW3gkccAJHnJrCh109-7ErMtGwXa0Mrvt_zg375_s5zvFWZ6knOKEBes18JxwUqpM7sUNQf03urtbdxWyP5EqhubDon494UHJ1GbLUHWncipcr1KAkmjxPwHzwwSnHOlTTOjY.png\" width=\"624\" height=\"528\"><br><br>Don&#8217;t forget to vote for the original <a href=\"https:\/\/github.com\/microsoft\/WSL\/issues\/4689\" target=\"_blank\" rel=\"noopener\">WSL issue<\/a> if it&#8217;s critical for you.<\/p>\n\n\n\n<p>That&#8217;s it for today!<br><br>The DataGrip team<\/p>\n","protected":false},"author":1294,"featured_media":394423,"comment_status":"closed","ping_status":"closed","template":"","categories":[826,89],"tags":[],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/datagrip\/394307"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/datagrip"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/types\/datagrip"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/users\/1294"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/comments?post=394307"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/datagrip\/394307\/revisions"}],"predecessor-version":[{"id":623336,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/datagrip\/394307\/revisions\/623336"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media\/394423"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media?parent=394307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/categories?post=394307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/tags?post=394307"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/cross-post-tag?post=394307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}