Loading Proposals Takes Very Long
See original GitHub issueSystem information:
- Windows 7
- DBeaver version 7.1.0
- Additional extensions
Connection specification:
- Oracle 11.2.0.4.0 - 64bit
- Driver name: Oracle
- Do you use tunnels or proxies (SSH, SOCKS, etc)? Yes
Describe the problem you’re observing:
While typing this appears in the background processes
Search proposals
Seeking for SQL completion proposals: Find object by name
and it keeps going and going for two minutes even though I’ve finished typing my statement already and executed it.
After a while the proposal query seems to have received a response and the dropdown just appears in the middle of the screen even though I’ve moved on to some other programme. Therefore, it would make great sense to check if dbeaver still has the focus here.
In another occasion after waiting for a while dbeaver flickers, executes my statement, shows the response in the grid and then still keeps doing something that I can cancel. Knowing that “cancel” typically just stalls dbeaver I stopped pressing it a while ago. After another while the cancel-button disappears and I can finally continue to work normally.
I mean with #6310 that took about ten minutes, so it’s already an improvement, but it’s still far from optimal. Also note that I access a bunch of Oracle database and only one causes problems, interestingly enough our production database. Other databases pretty much take the same route in the network.
Best is if I can just turn off that proposal thing. Or let it work in the background, way way back, so it doesn’t interfere with anything else. If I need a proposal I typically press Ctrl+Space to get it. Or if possible, load them after connecting to the database right away with super low priority. And increase the caching duration based on how long it took to get the information the first time.
Steps to reproduce, if exist:
Just write any kind of statement. At one point triggers the proposals are triggered.
Include any warning/errors/backtraces from the logs
eclipse.buildId=unknown
java.version=1.8.0_74
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_AT
Command-line arguments: -os win32 -ws win32 -arch x86_64
org.eclipse.jface
Error
Mon Jul 27 14:38:11 CEST 2020
Problems occurred when invoking code from plug-in: "org.eclipse.jface".
java.lang.NullPointerException
at org.eclipse.ui.internal.ide.dialogs.ProjectNaturesPage.createContents(ProjectNaturesPage.java:125)
at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:244)
at org.eclipse.jface.preference.PreferenceDialog.createPageControl(PreferenceDialog.java:1433)
at org.eclipse.jface.preference.PreferenceDialog$8.run(PreferenceDialog.java:1196)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1188)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:630)
at org.eclipse.jface.preference.PreferenceDialog$5.lambda$0(PreferenceDialog.java:660)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72)
at org.eclipse.jface.preference.PreferenceDialog$5.selectionChanged(PreferenceDialog.java:657)
at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:823)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:820)
at org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1190)
at org.eclipse.jface.viewers.StructuredViewer.lambda$0(StructuredViewer.java:1213)
at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:263)
at org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:258)
at org.eclipse.jface.util.OpenStrategy$1.lambda$1(OpenStrategy.java:428)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3897)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3527)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at org.eclipse.ui.internal.handlers.PropertyDialogHandler.execute(PropertyDialogHandler.java:49)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283)
at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:97)
at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:318)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:252)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:487)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:438)
at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:449)
at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.lambda$2(AbstractContributionItem.java:475)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4105)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1037)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3922)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3524)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1049)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:658)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:557)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:154)
at org.jkiss.dbeaver.ui.app.standalone.DBeaverApplication.start(DBeaverApplication.java:233)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
at org.eclipse.equinox.launcher.Main.run(Main.java:1447)
at org.eclipse.equinox.launcher.Main.main(Main.java:1420)
Issue Analytics
- State:
- Created 3 years ago
- Reactions:1
- Comments:20 (7 by maintainers)
Top GitHub Comments
After installing this version “Search metadata in synonyms” is unchecked. I guess it’s the default.
My configuration also has “Use UNION for table metadata” and “Always use DBA_* views” checked (probably because of previous suggestions).
This way it’s snappy, nice. However, as soon as I activate “Search metadata in synonyms” it becomes slower. So I’ll keep it unchecked.
With the other two mentioned options checked I get the best results and I’m quite pleased with it. So far I haven’t had any of the long requests.
AFAIC this can be closed. I’m not sure if there is anything else you want me to try so I won’t close the issue.
I believe your options are:
Main point being ALL_* views (ALL_OBJECTS, ALL_SYNONYMS, …) are horribly slow on Oracle when the number of objects in the database grows beyond trivial.