question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Loading Proposals Takes Very Long

See original GitHub issue

System 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:closed
  • Created 3 years ago
  • Reactions:1
  • Comments:20 (7 by maintainers)

github_iconTop GitHub Comments

1reaction
vermgitcommented, Jun 11, 2021

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.

1reaction
p91paulcommented, May 26, 2021

I believe your options are:

  • Check if you can query the view DBA_OBJECTS. If you can’t, ask your DBA to grant your user, then enable the corresponding option in dbeaver connection preferences.
  • If they deny your request, see here a new option that will be introduced with the next dbeaver version https://github.com/dbeaver/dbeaver/issues/12190#issuecomment-848550646. I expect (but did not test yet) that unchecking it will significantly improve your performance (not to the level of solution 1, but still better), however you will lose autocompletion for synonyms.

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.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Submitting a proposal takes too long - Upwork Community
I'm having a problem submitting my proposal to a client/job. The window takes too long to load after completing the proposal and clicking ......
Read more >
How can I speed up Eclipse Proposals? they are very slow
Under Windows > Preferences -> Java > Content Assist you can set an "auto activation delay" which should speed up the display of...
Read more >
Emissions proposals worry truckers; FMCSA load board debate.
President and CEO Todd Spencer argues that a load board isn't a broker “as long as they are only displaying information and not...
Read more >
Why Is My Website Slow? (8 Causes And Fixes) - WebFX
If a page takes too long to load and users see they're waiting on ads (instead of content), they'll bounce just because they're...
Read more >
Software Lockup while Calculating Proposals
This could be due to data in the file that the software is having a hard time calculating. This causes the proposal to...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found