Query builder performance
Hi
I'm running into very big performance problems with QueryBuilder.
I'm using asset viewer to browse my CQ DAM images. We have loaded more than 100.000 images... all of them are tagged.
Launching an http request like the following one:
http://localhost:port/bin/querybuilder.json
?_charset_=utf-8
&_dc=1332289410422
&fulltext=
&1_group.property.3_value=tag1
&1_group.property.29_value=tag2
&1_group.property.30_value=tag3
&1_group.property.31_value=tag4
&1_group.property.32_value=tag5
&1_group.property.33_value=tag6
&1_group.property.34_value=tag7
&0_group.property=jcr%3Acontent%2Fmetadata%2Fcq%3Atags
&0_group.p.or=true
&1_group.property=jcr%3Acontent%2Fmetadata%2Fcq%3Atags
&1_group.p.or=true
&p.limit=24
&2_group.0_path=%2Fcontent%2Fdam%2Fmyfolder%2Fimage%2Fprodotto
&3_group.0_type=dam%3AAsset
&mainasset=true
&p.hitwriter=full
&p.nodedepth=4
&orderby=path
&p.offset=0
it is going to take a *lot* of time (22 minutes!). This query has 36.000 results... but they are paginated... It's not possible to wait 22 minutes to get the first page of results... so I think I'm making some mistakes in the query, but cannot find anything to make it better following the documentation.
How can I improve performances?
Thanks
Ignazio
Hi Alex.
Yes, the order by may be consuming and I already removed it in the past. I have removed it again, but it is not the dominant.
It's difficult for me to explain to a client that with asset viewer (using querybuilder) he has to wait for a very long time to get the first 24 results of a set of 20.000 matches in a 120.000 image repository.
I can understand I need to wait a lot of time to get all the 20.000 matches, but I'm asking only for the first 24 (the first page) setting p.limit = 24.
Here the debug for the query I'm referring to:
21.03.2012 13:18:41.613 *INFO* [172.31.2.2 [1332332321612] GET /bin/querybuilder.json HTTP/1.1] com.day.cq.search.impl.builder.QueryImpl executing query (URL):
0_group.p.or=true&0_group.property=jcr%3acontent%2fmetadata%2fcq%3atags&0_group.property.0 _value=immaginegenerale&1_group.p.or=true&1_group.property=jcr%3acontent%2fmetadata%2fcq%3 atags&2_group.0_path=%2fcontent%2fdam%2fimage%2fprodotto&3_group.0_type=dam%3aAsset&fullte xt=&fulltext.relPath=jcr%3acontent%2fmetadata%2f%40dc%3amarketingdescription&mainasset=tru e&p.hitwriter=full&p.limit=24&p.nodedepth=4&p.offset=0
21.03.2012 13:18:41.613 *INFO* [172.31.2.2 [1332332321612] GET /bin/querybuilder.json HTTP/1.1] com.day.cq.search.impl.builder.QueryImpl executing query (predicate tree):
ROOT=group: limit=24, hitwriter=full, nodedepth=4, offset=0[
{fulltext=fulltext: relPath=jcr:content/metadata/@dc:marketingdescription, fulltext=}
{mainasset=mainasset: mainasset=true}
{0_group=group: or=true[
{property=property: property=jcr:content/metadata/cq:tags, 0_value:immaginegenerale}
{1_group=group: or=true[
{property=property: property=jcr:content/metadata/cq:tags}
{2_group=group: [
{0_path=path: path=/content/dam/image/prodotto}
{3_group=group: [
{0_type=type: type=dam:Asset}
21.03.2012 13:18:41.615 *INFO* [172.31.2.2 [1332332321612] GET /bin/querybuilder.json HTTP/1.1] com.day.cq.search.impl.builder.QueryImpl xpath query: /jcr:root/content/dam/image/prodotto//element(*, dam:Asset)[((jcr:content/metadata/@cq:tags = 'immaginegenerale'))]
21.03.2012 13:18:44.078 *INFO* [172.31.2.2 [1332332321612] GET /bin/querybuilder.json HTTP/1.1] com.day.cq.search.impl.builder.QueryImpl xpath query took 2465 ms
21.03.2012 13:18:44.078 *INFO* [172.31.2.2 [1332332321612] GET /bin/querybuilder.json HTTP/1.1] com.day.cq.search.impl.builder.QueryImpl filtering predicates: {mainasset=mainasset: mainasset=true}, , , ,
21.03.2012 13:22:16.394 *INFO* [172.31.2.2 [1332332321612] GET /bin/querybuilder.json HTTP/1.1] com.day.cq.search.impl.builder.QueryImpl >> xpath query returned 20117 results (counted)
21.03.2012 13:22:16.395 *INFO* [172.31.2.2 [1332332321612] GET /bin/querybuilder.json HTTP/1.1] com.day.cq.search.impl.builder.QueryImpl filtering took 212317 ms
21.03.2012 13:22:16.395 *INFO* [172.31.2.2 [1332332321612] GET /bin/querybuilder.json HTTP/1.1] com.day.cq.search.impl.builder.QueryImpl >> after filtering there are 20117 results
21.03.2012 13:22:16.397 *INFO* [172.31.2.2 [1332332321612] GET /bin/querybuilder.json HTTP/1.1] com.day.cq.search.impl.builder.QueryImpl entire query execution took 214784 ms
As you can see all the time is spent on the filtering predicates.
Is there a way to cut down significantly this time? or is it possible to distribute this effort only during pagination?
in a db-like approach I would have done a sql SELECT COUNT followed by a SELECT LIMIT 0,24... for sure taking a portion of this time.
Thanks
Ignazio
Similar Messages
-
SqlDev 3.0 - Query Builder - Drag/Drop table - SLOW
Has anyone else had their sql*dev 3.0 session essentially "freeze" when attempting to drag/drop a table into the query builder tab?
After the table finally show up in the query builder, if I remove the table and then drop it back in again, it appears in the QB immediately. The slowness only seems to happen the first time you drag each individual table in.
Anyone seen it?, is there a solution?
Thanks!It's expected behavior, since the Query Builder needs to load all the required table meta data and the related constraints, foreign keys etc.
The first EA version of this actually tried to load everything on startup, but then the tool became unusable during the startup phase of Query Builder.
If you are interested in the debate you can read it in the following threads:
Re: Poor performance on Query Builder with 3EA2
3.0.02.37 EA1: Query Builder Performance With Large Schema? -
Internal errors during Query Builder
Please help me to correct a problem. Database user has a very simple cube: a measure with two dimensions. User (named "warehouse") owns it, the fact table, the dimension tables etc.; client application connects using warehouse account too.
While QueryBuilder makes a data source, one dimension (providers) fails at the some selections; for example, selections "top 10" and "last 3" works, but selection "measure value > 10000" fails; the other dimension (services) works great with all selections tried.
"Fails" means that selection step can be selected (moved from "available" to "selected" box), but cannot be configured (edited) at any manner, both in the left and right boxes - for example, I cannot edit value "10000". This selection cannot be applied too. Visually query builder does nothing, but prints exception trace (see below).
My configuration:
BI Beans Diagnostics(v1.0.0.0) 04.03.04
===============================================================================
JDEV_ORACLE_HOME ............................. = C:\JDeveloper
JAVA_HOME .................................... = C:\JDeveloper\jdk
JDeveloper version ........................... = 9.0.3.1.1107
BI Beans version ............................. = 9.0.3.6.0
BI Beans internal version .................... = 2.7.0.14
Connect to database .......................... = Successful
JDBC driver version .......................... = 9.2.0.3.0
JDBC JAR file location ....................... = C:\JDeveloper\jdbc\lib
Database version ............................. = 9.2.0.4.0
OLAP Catalog version ......................... = 9.2.0.4.1
OLAP AW Engine version ....................... = 9.2.0.4.1
OLAP API Server version ...................... = 9.2.0.4.1
BI Beans Catalog version ..................... = N/A; not installed in warehouse
OLAP API JAR file version .................... = 9.2
OLAP API JAR file location ................... = C:\JDeveloper\jdev\lib\ext
Load OLAP API metadata ....................... = Successful
Number of metadata folders ................... = 3
Number of metadata measures .................. = 1
Number of metadata dimensions ................ = 2
Metadata output location ..................... = C:\JDeveloper\bibeans\bin\bi_metadata.txt
Exception:
Thu Mar 04 11:08:21 MSK 2004 In oracle.dss.queryBuilder.QueryBuilderQueryAccessUtils::getDimMembers
Sorry, these lines are re-translated from localized version
oracle.express.ExpressServerException Error class: OLAPI
Server errors description:
DPR: Unable to create server cursor, Universal at TxsOqDefinitionManagerSince9202::crtCurMgrWthInputTypes
OES: ORA-01722: invalid number
, Universal at TxsRdbSelectStatement:execute()
oracle.express.idl.ExpressOlapiDataCursorModule.CursorManagerInterface oracle.express.olapi.data.full.DefinitionManagerSince9202.createCursorManagerInterface(oracle.olapi.data.source.CursorManagerSpecification, oracle.olapi.data.source.SourceDefinition, oracle.olapi.data.source.Source[], long)
DefinitionManagerSince9202.java:260
oracle.express.olapi.data.full.ExpressSpecifiedCursorManager oracle.express.olapi.data.full.DefinitionManager.createCursorManager(oracle.olapi.data.source.CursorManagerSpecification, oracle.olapi.data.source.Source[], long)
DefinitionManager.java:132
oracle.olapi.data.source.SpecifiedCursorManager oracle.express.olapi.data.full.ExpressDataProvider.createCursorManagerSince9202(oracle.olapi.data.source.CursorManagerSpecification, oracle.olapi.data.source.Source[], long)
ExpressDataProvider.java:729
oracle.olapi.data.source.SpecifiedCursorManager oracle.express.olapi.data.full.ExpressDataProvider.internalCreateCursorManager(oracle.olapi.data.source.CursorManagerSpecification, oracle.olapi.data.source.Source[], long)
ExpressDataProvider.java:624
oracle.olapi.data.source.SpecifiedCursorManager oracle.express.olapi.data.full.ExpressDataProvider.createCursorManager(oracle.olapi.data.source.CursorManagerSpecification, oracle.olapi.data.source.Source[])
ExpressDataProvider.java:555
oracle.olapi.data.source.SpecifiedCursorManager oracle.olapi.data.source.DataProvider.createCursorManager(oracle.olapi.data.source.CursorManagerSpecification)
DataProvider.java:269
oracle.express.olapi.data.full.ExpressSpecifiedCursorManager[] oracle.dss.dataSource.QueryUtilities.setUpCursors(oracle.dss.dataSource.SourceTemplate[], oracle.dss.dataSource.common.CubeCursor[], oracle.olapi.data.source.Source[], oracle.express.olapi.data.full.ExpressSpecifiedCursorManager[], boolean, boolean, boolean, boolean)
QueryUtilities.java:558
oracle.express.olapi.data.full.ExpressSpecifiedCursorManager[] oracle.dss.dataSource.QueryServer._setUpCursorsForMainQuery(oracle.dss.dataSource.SourceTemplate[], oracle.dss.dataSource.common.CubeCursor[], boolean, boolean, boolean, boolean)
QueryServer.java:7036
void oracle.dss.dataSource.QueryServer._getCursorForCube(oracle.dss.dataSource.common.DimTree, boolean, boolean, boolean, boolean, boolean)
QueryServer.java:4096
void oracle.dss.dataSource.QueryServer._createCubeAndCursor(boolean, boolean, boolean)
QueryServer.java:4251
void oracle.dss.dataSource.QueryServer._createCommonQuery(java.lang.String[][], java.lang.String[], oracle.dss.util.Operation, oracle.dss.dataSource.common.QueryState)
QueryServer.java:3894
void oracle.dss.dataSource.QueryServer._initQuery(java.lang.String[][], java.lang.String[], oracle.dss.util.Operation, oracle.dss.dataSource.common.QueryState)
QueryServer.java:3841
java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])
native code
java.lang.Object oracle.dss.util.Operation.execute(java.lang.Object)
Operation.java:69
java.lang.Object oracle.dss.dataSource.OperationQueue.update()
OperationQueue.java:68
java.lang.Object oracle.dss.dataSource.common.BaseOperationQueue.addOperation(oracle.dss.util.Operation, int)
BaseOperationQueue.java:176
java.lang.Object oracle.dss.dataSource.common.BaseOperationQueue.addOperation(oracle.dss.util.Operation)
BaseOperationQueue.java:146
java.lang.Object oracle.dss.dataSource.QueryServer.queueOperation(java.lang.String, oracle.dss.util.Parameter[], boolean, oracle.dss.dataSource.common.QueryEvent, java.lang.String, oracle.dss.util.Parameter[], oracle.dss.dataSource.common.QueryState)
QueryServer.java:7073
void oracle.dss.dataSource.QueryServer.initQuery(java.lang.String[][], java.lang.String[])
QueryServer.java:3803
java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])
native code
java.lang.Object oracle.dss.util.Operation.execute(java.lang.Object)
Operation.java:69
java.lang.Object oracle.dss.dataSource.QueryManagerServer.sendQueue(oracle.dss.dataSource.common.BaseOperationQueue)
QueryManagerServer.java:1548
java.lang.Object oracle.dss.dataSource.common.OperationQueue.update()
OperationQueue.java:198
java.lang.Object oracle.dss.dataSource.common.BaseOperationQueue.addOperation(oracle.dss.util.Operation, int)
BaseOperationQueue.java:176
java.lang.Object oracle.dss.dataSource.common.BaseOperationQueue.addOperation(oracle.dss.util.Operation)
BaseOperationQueue.java:146
void oracle.dss.dataSource.client.QueryClient.initQuery(java.lang.String[][], java.lang.String[])
QueryClient.java:1581
oracle.dss.util.DataAccess oracle.dss.dataSource.common.QueryQueryAccess$SelCursor.getDataAccess(boolean)
QueryQueryAccess.java:1099
oracle.dss.util.DataAccess oracle.dss.dataSource.common.QueryQueryAccess.getDataAccess(java.lang.String)
QueryQueryAccess.java:278
java.util.Vector oracle.dss.queryBuilder.QueryBuilderQueryAccessUtils.getDimMembers(oracle.dss.datautil.QueryAccessUtilities, java.lang.String, java.lang.String, java.util.Vector, java.lang.String)
QueryBuilderQueryAccessUtils.java:220
oracle.dss.datautil.DimensionMember oracle.dss.queryBuilder.QueryBuilderQueryAccessUtils.getDimMember(oracle.dss.datautil.QueryAccessUtilities, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
QueryBuilderQueryAccessUtils.java:156
java.util.Vector oracle.dss.queryBuilder.stepView.ConditionStepView.getQDRMemberNames(java.lang.String, oracle.dss.selection.OlapQDR)
ConditionStepView.java:230
void oracle.dss.queryBuilder.stepView.ConditionStepView.updateQDRControls()
ConditionStepView.java:606
void oracle.dss.queryBuilder.stepView.MeasConditionStepView.updateQDR()
MeasConditionStepView.java:451
void oracle.dss.queryBuilder.stepView.MeasConditionStepView.updateMeasureEditorSelection()
MeasConditionStepView.java:208
void oracle.dss.queryBuilder.stepView.MeasConditionStepView.updateMeasureEditorContents()
MeasConditionStepView.java:271
void oracle.dss.queryBuilder.stepView.MeasConditionStepView.updateMeasureEditorSelection()
MeasConditionStepView.java:161
void oracle.dss.queryBuilder.stepView.MeasConditionStepView.updateControls()
MeasConditionStepView.java:148
void oracle.dss.queryBuilder.stepView.StepView.updateStepEditor(oracle.dss.selection.step.Step, boolean, boolean, int)
StepView.java:562
javax.swing.JPanel oracle.dss.queryBuilder.stepView.StepView.getStepEditor(oracle.dss.selection.step.Step, boolean, boolean, int, int)
StepView.java:522
void oracle.dss.queryBuilder.StepsPanelEditor.startEdit(java.awt.Component, java.lang.String, int, java.awt.Rectangle)
StepsPanelEditor.java:93
boolean oracle.dss.util.dimensionList.DimensionList.doEdit(int)
DimensionList.java:525
void oracle.dss.queryBuilder.StepsPanel$MyDimensionListAdapter.startEditingNewSelection()
StepsPanel.java:404
void oracle.dss.queryBuilder.StepsPanel$MyDimensionListAdapter.dimensionSelected(oracle.dss.util.dimensionList.DimensionListEvent)
StepsPanel.java:374
void oracle.dss.util.dimensionList.DimensionList.notifyDimensionListListener(oracle.dss.util.dimensionList.DimensionListEvent)
DimensionList.java:2074
void oracle.dss.util.dimensionList.DimensionList.valueChanged(javax.swing.event.ListSelectionEvent)
DimensionList.java:1772
void javax.swing.JList.fireSelectionValueChanged(int, int, boolean)
JList.java:946
void javax.swing.JList$ListSelectionHandler.valueChanged(javax.swing.event.ListSelectionEvent)
JList.java:960
void javax.swing.DefaultListSelectionModel.fireValueChanged(int, int, boolean)
DefaultListSelectionModel.java:170
void javax.swing.DefaultListSelectionModel.fireValueChanged(boolean)
DefaultListSelectionModel.java:140
void javax.swing.DefaultListSelectionModel.setValueIsAdjusting(boolean)
DefaultListSelectionModel.java:507
void javax.swing.JList.setValueIsAdjusting(boolean)
JList.java:1261
void javax.swing.plaf.basic.BasicListUI$MouseInputHandler.mouseReleased(java.awt.event.MouseEvent)
BasicListUI.java:831
void java.awt.AWTEventMulticaster.mouseReleased(java.awt.event.MouseEvent)
AWTEventMulticaster.java:231
void java.awt.AWTEventMulticaster.mouseReleased(java.awt.event.MouseEvent)
AWTEventMulticaster.java:230
void java.awt.Component.processMouseEvent(java.awt.event.MouseEvent)
Component.java:3715
void oracle.dss.util.dimensionList.DragList.processMouseEvent(java.awt.event.MouseEvent)
DragList.java:202
void oracle.dss.util.dimensionList.DimensionList.processMouseEvent(java.awt.event.MouseEvent)
DimensionList.java:2167
void java.awt.Component.processEvent(java.awt.AWTEvent)
Component.java:3544
void java.awt.Container.processEvent(java.awt.AWTEvent)
Container.java:1164
void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
Component.java:2593
void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
Container.java:1213
void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
Component.java:2497
void java.awt.LightweightDispatcher.retargetMouseEvent(java.awt.Component, int, java.awt.event.MouseEvent)
Container.java:2451
boolean java.awt.LightweightDispatcher.processMouseEvent(java.awt.event.MouseEvent)
Container.java:2216
boolean java.awt.LightweightDispatcher.dispatchEvent(java.awt.AWTEvent)
Container.java:2125
void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
Container.java:1200
void java.awt.Window.dispatchEventImpl(java.awt.AWTEvent)
Window.java:922
void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
Component.java:2497
void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
EventQueue.java:339
boolean java.awt.EventDispatchThread.pumpOneEventForHierarchy(java.awt.Component)
EventDispatchThread.java:131
void java.awt.EventDispatchThread.pumpEventsForHierarchy(java.awt.Conditional, java.awt.Component)
EventDispatchThread.java:98
void java.awt.Dialog.show()
Dialog.java:380
void java.awt.Component.show(boolean)
Component.java:946
void java.awt.Component.setVisible(boolean)
Component.java:903
boolean oracle.bali.ewt.wizard.WizardDialog.runDialog()
boolean oracle.dss.datautil.gui.DefaultBuilderDialog.runDialog()
DefaultBuilderDialog.java:481
boolean oracle.dss.datautil.gui.DefaultBuilderDialog.run()
DefaultBuilderDialog.java:466
boolean oracle.dss.queryBuilder.QueryBuilder.run()
QueryBuilder.java:2401
void borlas.oa.Actions.actionEditQuery.doAction()
actionEditQuery.java:44
boolean borlas.oa.Actions.Action.fire()
Action.java:88
void borlas.oa.Forms.FormModule.editQuery()
FormModule.java:132
void borlas.oa.Forms.FormModule.access$6000071(borlas.oa.Forms.FormModule)
FormModule.java:42
void borlas.oa.Forms.FormModule$1.actionPerformed(java.awt.event.ActionEvent)
FormModule.java:113
void javax.swing.AbstractButton.fireActionPerformed(java.awt.event.ActionEvent)
AbstractButton.java:1450
void javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(java.awt.event.ActionEvent)
AbstractButton.java:1504
void javax.swing.DefaultButtonModel.fireActionPerformed(java.awt.event.ActionEvent)
DefaultButtonModel.java:378
void javax.swing.DefaultButtonModel.setPressed(boolean)
DefaultButtonModel.java:250
void javax.swing.AbstractButton.doClick(int)
AbstractButton.java:279
void javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(java.awt.event.MouseEvent)
BasicMenuItemUI.java:886
void java.awt.Component.processMouseEvent(java.awt.event.MouseEvent)
Component.java:3715
void java.awt.Component.processEvent(java.awt.AWTEvent)
Component.java:3544
void java.awt.Container.processEvent(java.awt.AWTEvent)
Container.java:1164
void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
Component.java:2593
void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
Container.java:1213
void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
Component.java:2497
void java.awt.LightweightDispatcher.retargetMouseEvent(java.awt.Component, int, java.awt.event.MouseEvent)
Container.java:2451
boolean java.awt.LightweightDispatcher.processMouseEvent(java.awt.event.MouseEvent)
Container.java:2216
boolean java.awt.LightweightDispatcher.dispatchEvent(java.awt.AWTEvent)
Container.java:2125
void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
Container.java:1200
void java.awt.Window.dispatchEventImpl(java.awt.AWTEvent)
Window.java:922
void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
Component.java:2497
void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
EventQueue.java:339
boolean java.awt.EventDispatchThread.pumpOneEventForHierarchy(java.awt.Component)
EventDispatchThread.java:131
void java.awt.EventDispatchThread.pumpEventsForHierarchy(java.awt.Conditional, java.awt.Component)
EventDispatchThread.java:98
void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional)
EventDispatchThread.java:93
void java.awt.EventDispatchThread.run()
EventDispatchThread.java:85
Exception occurred during event dispatching:
java.lang.NullPointerException
java.util.Vector oracle.dss.queryBuilder.stepView.ConditionStepView.getQDRMemberNames(java.lang.String, oracle.dss.selection.OlapQDR)
ConditionStepView.java:230
void oracle.dss.queryBuilder.stepView.ConditionStepView.updateQDRControls()
ConditionStepView.java:606
void oracle.dss.queryBuilder.stepView.MeasConditionStepView.updateQDR()
MeasConditionStepView.java:451
void oracle.dss.queryBuilder.stepView.MeasConditionStepView.updateMeasureEditorSelection()
MeasConditionStepView.java:208
void oracle.dss.queryBuilder.stepView.MeasConditionStepView.updateMeasureEditorContents()
MeasConditionStepView.java:271
void oracle.dss.queryBuilder.stepView.MeasConditionStepView.updateMeasureEditorSelection()
MeasConditionStepView.java:161
void oracle.dss.queryBuilder.stepView.MeasConditionStepView.updateControls()
MeasConditionStepView.java:148
void oracle.dss.queryBuilder.stepView.StepView.updateStepEditor(oracle.dss.selection.step.Step, boolean, boolean, int)
StepView.java:562
javax.swing.JPanel oracle.dss.queryBuilder.stepView.StepView.getStepEditor(oracle.dss.selection.step.Step, boolean, boolean, int, int)
StepView.java:522
void oracle.dss.queryBuilder.StepsPanelEditor.startEdit(java.awt.Component, java.lang.String, int, java.awt.Rectangle)
StepsPanelEditor.java:93
boolean oracle.dss.util.dimensionList.DimensionList.doEdit(int)
DimensionList.java:525
void oracle.dss.queryBuilder.StepsPanel$MyDimensionListAdapter.startEditingNewSelection()
StepsPanel.java:404
void oracle.dss.queryBuilder.StepsPanel$MyDimensionListAdapter.dimensionSelected(oracle.dss.util.dimensionList.DimensionListEvent)
StepsPanel.java:374
void oracle.dss.util.dimensionList.DimensionList.notifyDimensionListListener(oracle.dss.util.dimensionList.DimensionListEvent)
DimensionList.java:2074
void oracle.dss.util.dimensionList.DimensionList.valueChanged(javax.swing.event.ListSelectionEvent)
DimensionList.java:1772
void javax.swing.JList.fireSelectionValueChanged(int, int, boolean)
JList.java:946
void javax.swing.JList$ListSelectionHandler.valueChanged(javax.swing.event.ListSelectionEvent)
JList.java:960
void javax.swing.DefaultListSelectionModel.fireValueChanged(int, int, boolean)
DefaultListSelectionModel.java:170
void javax.swing.DefaultListSelectionModel.fireValueChanged(boolean)
DefaultListSelectionModel.java:140
void javax.swing.DefaultListSelectionModel.setValueIsAdjusting(boolean)
DefaultListSelectionModel.java:507
void javax.swing.JList.setValueIsAdjusting(boolean)
JList.java:1261
void javax.swing.plaf.basic.BasicListUI$MouseInputHandler.mouseReleased(java.awt.event.MouseEvent)
BasicListUI.java:831
void java.awt.AWTEventMulticaster.mouseReleased(java.awt.event.MouseEvent)
AWTEventMulticaster.java:231
void java.awt.AWTEventMulticaster.mouseReleased(java.awt.event.MouseEvent)
AWTEventMulticaster.java:230
void java.awt.Component.processMouseEvent(java.awt.event.MouseEvent)
Component.java:3715
void oracle.dss.util.dimensionList.DragList.processMouseEvent(java.awt.event.MouseEvent)
DragList.java:202
void oracle.dss.util.dimensionList.DimensionList.processMouseEvent(java.awt.event.MouseEvent)
DimensionList.java:2167
void java.awt.Component.processEvent(java.awt.AWTEvent)
Component.java:3544
void java.awt.Container.processEvent(java.awt.AWTEvent)
Container.java:1164
void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
Component.java:2593
void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
Container.java:1213
void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
Component.java:2497
void java.awt.LightweightDispatcher.retargetMouseEvent(java.awt.Component, int, java.awt.event.MouseEvent)
Container.java:2451
boolean java.awt.LightweightDispatcher.processMouseEvent(java.awt.event.MouseEvent)
Container.java:2216
boolean java.awt.LightweightDispatcher.dispatchEvent(java.awt.AWTEvent)
Container.java:2125
void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
Container.java:1200
void java.awt.Window.dispatchEventImpl(java.awt.AWTEvent)
Window.java:922
void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
Component.java:2497
void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
EventQueue.java:339
boolean java.awt.EventDispatchThread.pumpOneEventForHierarchy(java.awt.Component)
EventDispatchThread.java:131
void java.awt.EventDispatchThread.pumpEventsForHierarchy(java.awt.Conditional, java.awt.Component)
EventDispatchThread.java:98
void java.awt.Dialog.show()
Dialog.java:380
void java.awt.Component.show(boolean)
Component.java:946
void java.awt.Component.setVisible(boolean)
Component.java:903
boolean oracle.bali.ewt.wizard.WizardDialog.runDialog()
boolean oracle.dss.datautil.gui.DefaultBuilderDialog.runDialog()
DefaultBuilderDialog.java:481
boolean oracle.dss.datautil.gui.DefaultBuilderDialog.run()
DefaultBuilderDialog.java:466
boolean oracle.dss.queryBuilder.QueryBuilder.run()
QueryBuilder.java:2401
void borlas.oa.Actions.actionEditQuery.doAction()
actionEditQuery.java:44
boolean borlas.oa.Actions.Action.fire()
Action.java:88
void borlas.oa.Forms.FormModule.editQuery()
FormModule.java:132
void borlas.oa.Forms.FormModule.access$6000071(borlas.oa.Forms.FormModule)
FormModule.java:42
void borlas.oa.Forms.FormModule$1.actionPerformed(java.awt.event.ActionEvent)
FormModule.java:113
void javax.swing.AbstractButton.fireActionPerformed(java.awt.event.ActionEvent)
AbstractButton.java:1450
void javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(java.awt.event.ActionEvent)
AbstractButton.java:1504
void javax.swing.DefaultButtonModel.fireActionPerformed(java.awt.event.ActionEvent)
DefaultButtonModel.java:378
void javax.swing.DefaultButtonModel.setPressed(boolean)
DefaultButtonModel.java:250
void javax.swing.AbstractButton.doClick(int)
AbstractButton.java:279
void javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(java.awt.event.MouseEvent)
BasicMenuItemUI.java:886
void java.awt.Component.processMouseEvent(java.awt.event.MouseEvent)
Component.java:3715
void java.awt.Component.processEvent(java.awt.AWTEvent)
Component.java:3544
void java.awt.Container.processEvent(java.awt.AWTEvent)
Container.java:1164
void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
Component.java:2593
void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
Container.java:1213
void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
Component.java:2497
void java.awt.LightweightDispatcher.retargetMouseEvent(java.awt.Component, int, java.awt.event.MouseEvent)
Container.java:2451
boolean java.awt.LightweightDispatcher.processMouseEvent(java.awt.event.MouseEvent)
Container.java:2216
boolean java.awt.LightweightDispatcher.dispatchEvent(java.awt.AWTEvent)
Container.java:2125
void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
Container.java:1200
void java.awt.Window.dispatchEventImpl(java.awt.AWTEvent)
Window.java:922
void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
Component.java:2497
void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
EventQueue.java:339
boolean java.awt.EventDispatchThread.pumpOneEventForHierarchy(java.awt.Component)
EventDispatchThread.java:131
void java.awt.EventDispatchThread.pumpEventsForHierarchy(java.awt.Conditional, java.awt.Component)
EventDispatchThread.java:98
void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional)
EventDispatchThread.java:93
void java.awt.EventDispatchThread.run()
EventDispatchThread.java:85Also read this great article
http://sqlblog.com/blogs/alexander_kuznetsov/archive/2009/05/13/your-try-block-may-fail-and-your-catch-block-may-be-bypassed.aspx
Best Regards,Uri Dimant SQL Server MVP,
http://sqlblog.com/blogs/uri_dimant/
MS SQL optimization: MS SQL Development and Optimization
MS SQL Consulting:
Large scale of database and data cleansing
Remote DBA Services:
Improves MS SQL Database Performance
SQL Server Integration Services:
Business Intelligence -
Automating Query Builder Functionality?
Hi,
My project requires up to date information on the currently live File Repository Server. I know this information can be found by manually entering a SQL statement into the Query Builder Tool. However, I have been asked to create a script that performs this task automatically and repeatedly. When the details of the FRS change, the up to date information must be logged to the Windows Event log from which the information will be lifted by our company's internal log monitoring tool.
If anyone can give me an idea of how I might do this I would certainly appreciate the help. I would also be thankful for any suggestions for alternative solutions to the one outlined above. For instance is there a given pattern I can search any of the BOE log files for to gather the required info?
I'm a total newbie, so apologies if any of the above sounds a bit naiave or just down right stupid...
Best Regards
DavidBOE provides SDK to access the CMS. Please look at http://devlibrary.businessobjects.com/BusinessObjectsXIR2SP2/en/devsuite.htm for more info on the SDK. You have the option from choosing from Java/webservice or .NET SDK.
-
How to use Query Builder in Oracle10g
Since I'm new to Oracle , thus I'm facing some problem in some portions. When I went through the Query Builder option, actually I was not able to build the query as some of the features present in it were not clear to me like the "Condition" part and if I need to perform some join in it, how would that part work on it.
Please reply and help me out. Thanks.
Regards,
Praveen RaiQuery Builder is level 8.0, it's part of desupported developer 6i. Installation media has an online manual, which answers your questions. You should consider an alternative like SQLDeveloper. Query Builder may still work with 10g, but no guarantee.
Werner -
Query Builder won't apply chosen date to the where clause
Does anybody know why when I chose a date field, in the where clause, when using Query Builder, it won't actually write the chosen date to the actual query?
If I select the "View Query" tab, no date shows up. Also if I press the "Run Report" button in the "View Result" tab, I get this error:
"An error was encountered performing requested operation: ORA-00936: missing expression"
This is because actual date data is missing.
After I hit the "Apply" button, I have to manually type the date data.
I thought this was a bug of the previous version, but I just installed version 1.5.4 and I have no different result.
Thanks.I just wanted to add my name to the list of people having this issue.
Oracle Techies, please help. -
Hi,
I'm new to Publisher and can't seem to fiigure out the best way to do an 'OR' condition in query builder. Any tips? For example if in regular SQL I wanted:
select * from employee
where empnbr is not null
or empnbr > 100
Basically two conditions on the same column. Can this be done easily in query builder or do I have to have my users work with the raw SQL to get this done? Thanks!Using query builder to build the SQL statement is a one-time shot. Once you've created and saved a query, you cannot go back to QB and edit the query, regardless of the change you want to make. The statement can be edited back out in the main design window. Further, you do not have to rely upon the drop down menu items in the clause/filter conditions. You can manually enter/edit the query in the report window if so desired. Not every function is available in the lists anyway. QB is a beginner's crutch (everyone starts out new to SQL, no problem with that) to scripting SQL.
In your situation, how do you apply more than one condition to a single column? QB does not allow that directly, but what you can do is a self-join on the table, use the employee ID as the relation, and select salary in both tables. The resulting query will be like so:
select EMPLOYEES.EMPLOYEE_ID as EMPLOYEE_ID,
EMPLOYEES.SALARY as SALARY,
EMPLOYEES_1.EMPLOYEE_ID as EMPLOYEE_ID,
EMPLOYEES_1.SALARY as SALARY
from HR.EMPLOYEES EMPLOYEES_1,
HR.EMPLOYEES EMPLOYEES
where EMPLOYEES.EMPLOYEE_ID=EMPLOYEES_1.EMPLOYEE_ID
and EMPLOYEES.SALARY is not null
and EMPLOYEES_1.SALARY > 1000
It will be easier (and more performant) to script the first condition, and then add the second inside the report window. -
Hi, Cant use Query builder in Apps. Because there is no Foreign Keys define
Hi,
We Cant use any Query Builder (SqlDeveloper) in Oracle Apps.
Because there is no Foreign Keys defined on the table except primary key.
I agree that common colums are there on different table,
But it's bit difficult to digout for numbers of tables from different modules (schema).
Do any one have any query which can find common colums from different tables though the tables may or may not be from different Schemas too.
Thanks in advance.
Bachan>
Due to performance oracle has not applied constraints
on tables except Primary Key.
I find this hard to believe. The most likely reason for this, is to speed up inserts, but thats only applicable if you have lots of inserts at the same time.
But they have given eTRM to refer the forigen columns
on different tables.
Forigen column is just for name shake there is no
constraint available except Primary key.
And whenever we have to make query and apply join, we
have to dig a lot.
Even we cant use Sqldeveloper Query builder, which is
a dam good tool for making Joins and query.
My problem is the Time and effort which we have to
put for diging tables.
just want to reduce that with some intleactual
Query.You will get quicker as you get more experienced. Of course, everytime you have a query to do a specific job you could save it in an appropriately named file and store it in your source control system.
>
Can u help me with names of the Tables which store
information about tables, schema, columns, index, and
views.select * from dictionary -
Visual database model/query builder
Hi:
I am a novice MS SQL 2000 database developer and need a
completely visual (graphical) model and query builder software.
Do you know one that helps me make a complicated database
which is designed on papaer ASAP and lets me transfer it to my MS
SQL 2000 SERVER ? The price doesn't matter and the only thing that
matters is the good performance and USER FRIENDLY and easy to use
of the software.
I will be very graceful if you help me solve this urgent
problem.
THANKS
BenginHi:
Thanks for the fast reply.
I vistied the links and read some reviews about Visio. All
looked great.
About how easy I need, I want as easy as possible. You know I
need some software that even helps me optimize my paper based plan.
I have surely some errors and some problems in my drafts. Plus I
need something that asks me (with wizards or some drag_and_drop
tools) what I need and makes it for me. For example making some
One_One/One_many/Many_many Relations and some DB Rules and
something like that for tables and records. Please tell me if you
know any software that covers the above needs.
Thanks again
Benign -
How to disable autojoins in query builder
Hello,
When I add several tables to the graphical query builder window in SQL developer I automatically get all possible variants of joins between them. Tables in the database have many foreign keys, and even with a few tables the net of links between them become completely incomprehensible. The only way around that I found is to delete manually all unneeded links after every table addition. Still this is very tedious and inconvenient, and of course with each new table there is a larger number of links to delete. Is it possible to add a table to the query builder without creating any links automatically?
Best regards,
Vladimir.Hi Vladimir,
There are no preferences to control Query Builder, but rather than beginning a query there via drag & drop of tables/views from the Navigator tree, why not begin instead with the worksheet by typing in something very minimal like:
SELECT * FROM JOB_HISTORY, JOBS, EMPLOYEES, LOCATIONSNext, switch to the Query Builder tab (just the un-joined tables will appear) and add the joins as you wish. The Completion Insight feature can help speed up typing the table/view names, and also avoids a minor performance issue with Query Builder drag & drop.
Hope this helps,
Gary -
Query Builder Component added to Raptor?
Have briefly tried out Raptor and have liked what I've seen so far. I'm sure the features will continue to grow over time too.
Our developers use Oracle Query Builder on a daily basis to develop queries as well as ad-hoc reporting. As an E-Business Suite Customer we've been running into issues with the 8192 object limitation in QB. I'm wondering if plans are in the works to add some sort of graphical Query Builder functionality to Raptor and to remove the 8192 object limitation.I would recommend that you look at the Paradox for Windows query by example as a way of implementing this feature in Raptor. While the interface may appear to be old (less sexy) compared to some of the newer graphical methods of performing this activity (i.e. MS Access or HTMLDB); I find that it is an efficient tool for minimizing the amount of text that I have to write for SQL. Once I've developed the bulk of my query graphically, I then use the SQL converter and customize from there. The QBE metaphor I find much easier to manage then all of the drag and drop found in some of the interfaces today.
Another recommendation that I have is that you look at using the newer join syntax than the old (e.g. left outer join). -
Hi all,
I'm using query builder to retrieve result. Generated query statement is:
/jcr:root/content/dam/myFolder//element(*, dam:Asset) order by jcr:content/metadata/general/@views descending
The attribute 'views' is of xtype numberfield, but of course numberfield is a textfield with only numbers allowed inside and stored as String.
Ordering by this attribute returns hits ordered in descending alphabetical order.
My question is if it's possible to execute query with ordering by number value of it's attribute, not string value.
Thanks a lot for helpThe xpath search cannot do this. So the best option (also in terms of performance) is to make that property a LONG.
Alternatively you can write a custom querybuilder predicate evaluator that can provide a custom comparator. In the query, you would then address that predicate in the orderby to use the comparator:
stringasnumber=jcr:content/metadata/general/views
orderby=stringasnumber
It could inherit from the standard JcrPropertyPredicateEvaluator or even from RangePropertyPredicateEvaluator (to support range queries as well, using filtering). Note that such a comparator will be slow if there are many results to order (since it does not make use of any search index). -
How to add a new field in Query Builder or Report
Hi,
I am writing a report using Oracle 6i query builder and report.
example:
QTY_1 QTY_2 QTY_3
QTY_1 and QTY_2 are table fields and QTY_3 Is not. I need to show the value of (QTY_2-QTY_1) in QTY_3.
I need to create a field QTY_3 which is not in the database table. How do I do that?
JunHi,
Try using formula to return the qty_1 - qty2.
or
select qty_1, qty_2, (qty_1 - qty_2) qty_3
from table;
regards,
CB -
I am trying to edit the default forms/reports that come with CM14, trying to edit the data model, data set, (to get to the old Infomaker style graphic view) , the Query model does not display (error the list of tables is too long..) Oracle tell me the limit is 60, there are not 60 tables referenced in any CM report.
Does this Query builder view work at all on any report?
(bigger question, we are moving from CM12, should we move to CM13 which works with infomaker?)
Thanks,
Paul LKurt, thanks for your replies.
A couple of notes/clarifications.
1. You are correct that BI works better in Firefox--I have observed issues with the BI display when using IE. I would recommend using Firefox too.
2. You are correct about the way to get to the Query Builder to see a graphical view of data tables. There are basically two issues with this that I mentioned, but will re-iterate:
a. If you have an EXISTING query in the data set, then click the "Query Builder" button, this will remove the existing query that's there, it will NOT display the existing query in the query builder. Query Builder works only to create a NEW query from scratch.
b. Query builder is limited to selecting 60 fields max in your query. If you are creating a large report with many tables, you may find that 60 fields is not enough. For that you will have to work in the SQL edit screen rather than using the query builder.
I would impress on anyone developing CM14 reports that they become familiar with the database schema and relationships to avoid problems when developing your BI reports. You should be able to find the tables and joins documentation in the knowledgebase. -
Query Builder in Crystal Report Server 2008?
I am running CRS2008 V1 on Windows Server 2003 as single server install. I am using IIS as the web application server. Query Builder doesn't show up as an option anywhere I can find. How do I get to Query Builder?
How do I install Query Builder if it is not already available?
Is Tomcat required?
Can I continue to use IIS but have Query Builder available as well?
Can I go ahead and install Tomcat without crashing my BOE installation and IIS?
How do I install Tomcat on this server?Well I've never installed CRS 2008 so I'm not sure. If the installer allows you should be able to go to add/remnove programs and modify the install, adding tomcat/java. If that is not allowed the installer may require IIS or tomcat only and a full reinstall (I hope not).
I work with BOE 3.1 mostly and we can add/remove it with that installer.
Regards,
Tim
Maybe you are looking for
-
Shows a upload not finished can't find it ?
Shows a upload not finished can't find it ?
-
Is it possible to install my home folder on an external drive?
I need to hand my MacBook in for repair, but I don't want any of my documents on it when it goes in to the repair shop. I have full Time Machine back-ups of the entire laptop, but is there any way I can install my home folder on an external drive so
-
Executing Store Procedure random timeouts
We have some simple stored procedures that run find when run under the Advantage Data Architect, but randomly times out when we call them from our ASP web site using the OLEDB driver. When we try to call them using the Advantage Java database driver
-
SA/PO item condition not followed during Goods Receipt
Hi! Gurus, Could you please help in resolving the our issue on SA/PO item condition. Thanks. During GR via MB01 of Scheduling Agreement/Purchase Order the FI document posting does not follow the SA/PO item condition for Gross Price, Customs - % and
-
ITunes Column Browser inoperative
I'm running a new 27-inch iMac under OS X Mavericks and with iTunes v.11.1.3(8). The past couple or three upgrades for iTunes have had the Column Browser "grayed out" and thus inoperative. I'd like to display my extensive collection of music showing