POST
|
Mark, Thank you for submitting the issue to support. We've identified the problem and are working on a QFE for you and this issue will be addressed in ArcGIS 10.1 and future ArcGIS 10.0 Service Packs. The problem will only be encountered when the outer query will return a result set > 2000 objects and a second query has been executed (where its access path is via the spatial index). What is happening is the internal rid list (rowid list the domain index provides during the query execution) reaches 2000, which is the magical number in which it then hands over the set to Oracle in order to allow the query to continue processing. Once the consummer fetches the 2000 rows, the next 2000 or remaining rids are provided to Oracle and so on... As the cursor is waiting to return the next batch of rids to Oracle, the next query is executed and overwrites the first cursors rid list. Unfortunately it was a critical bug as you discovered, but very unique and would only be exposed based upon your workflow of using nested queries and the first query fetching > 2000 rows. Thank you and if you have further questions or needs please don't hesitate to contact support or leverage the forums. Thomas Brown Geodatabase team
... View more
01-07-2012
05:57 PM
|
0
|
0
|
169
|
POST
|
John What release of ArcGIS are you using? Any time you edit a versioned view, be it the DEFAULT version or a named version (that is then reconciled and posted to the DEFAULT version), the geodatabase must be compressed to move the rows from the delta tables to the base table. Good luck.
... View more
11-11-2011
06:42 AM
|
0
|
0
|
364
|
POST
|
Josh, Would you please be able to provide any examples of how you used the version lineage tool to solve problems or improve a workflow? Yes, the version lineage tool provides a nice visual representation to how the system works internally - for example, for one to understand how states are created and managed during a reconcile or compress. Nice for educational purposes. But how does the tool help an administrator? Thank you for the input as we want to ensure the tools we build provide a solution for the appropriate workflows.
... View more
11-08-2011
08:49 AM
|
0
|
0
|
368
|
POST
|
I guess it is likely ArcCatalog tried both Oracle clients (10g and 11g) Esri doesn't attempt to use any Oracle client... ArcGIS is compiled with Oracle's libraries. When we make a call to Oracle's Call Interface (OCI) it loads the Oracle client library. The library it loads is the first client it finds in the path. Esri has no control over what Oracle client is loaded. Some of the confusion in this exchange is in regards to the "direct connect" libraries... these are Esri libraries. In previous releases you had to specify in the direct connect syntax the Esir client library to use with Oracle - either Oracle 10g or 11g (and 9i when it was supported). Based on what was specified in the connection string, ArcGIS would load the Esri library which was compiled using the specific Oracle release. It's this library which then attempts to establish the connection to the database by calling the OCI function to create a connection (which in turn loads it's dependencies - the installed Oracle client). What we've accomplished with ArcGIS 10.1 is to simplify the connection experience by now requiring the user to only specify which DBMS platform they are connecting to... for example when the user selects Oracle we only have 1 Esri library used to make the connection (which is based on Oracle 11g libraries) and again - its the Oracle library which pulls in its own client libraries. Hopefully this clearly explain the architecture of what happens during a connection and the clear distinction of Esri's libraries and Oracle's libraries. If you have dependency's on your machines to have both an Oracle 9i or 11g client then you need to speak with Oracle support on how to configure this properly for multi applications. Good luck and thank you for posting.
... View more
08-18-2011
12:34 PM
|
0
|
0
|
139
|
POST
|
I'm curious, how would you have done this prior to 10.1? ArcGIS simply makes the call to the Oracle client which would be the first one in the library path as the DLL is loaded. Thanks.
... View more
08-04-2011
08:14 PM
|
0
|
0
|
668
|
POST
|
TJ, We're still investigating... We don't want to remove the second index on the sp_id attribute because that will have an impact when deleting entries from the domain index. The next step will be to investigate a 10053 trace when statistics are present on the object. Hopefully the trace will show why the optimizer is choosing the sp_id index verses the composite index (driving access path by gx/gy). One thing to look into... what is the distribution of gx/gy values? If the min/max range of gx or gy is low (possibly all features reside within the same gx/gy?) then the optimizer could easily lean towards the sp_id index. We'll have support provide you a query which returns the distribution of values by grid cell just to make sure you're not working with a suboptimal grid index size. Finally, you're not encountering the issue which was referenced in the other threads - why the optimizer is choosing a full table scan on the table and not using the domain index. That's a different issue which was resolved in 9.3.1 SP where the st_envintersects operator is no longer associated with the st_stats type (meaning the access path will always be the spatial index when the st_envintersects operator is present). Thanks.
... View more
06-30-2011
09:49 PM
|
0
|
0
|
418
|
POST
|
Jose, Can you please explain what type of database tasks/maintanence you are performing for which you must disable your archive, compress and unregister the data as versioned? Thank you.
... View more
02-15-2011
06:27 AM
|
0
|
0
|
1913
|
POST
|
Based on the error message it indicates a failure in the Oracle spatial type. Have you searched for this error on any of the Oracle forums/websites? It's not a problem in reconcile, you could capture an Oracle trace an identify exactly which statement is failing and you will then know which table has the problem. If you need further assistance, I would contact ESRI Support. They would be able to help you narrow down the issue. Good luck.
... View more
02-15-2011
06:22 AM
|
0
|
0
|
1368
|
POST
|
Just to be clear... what you stated is how the geoprocessing tool performs your operation. ArcSDE is simply a gateway for ArcGIS products to interact with the underlying DBMS platform. ArcSDE simply takes the SQL or request from the client application and passes it to the database. Therefore, if the geoprocessing tool is performing a compound query in two steps (first the spatial and then the second predicate filter) its performance will of course be different if the developer writes a query passing both predicate filters in the one query. ArcGIS sometimes provides many options on how to perform a task, some which perform better than others based upon the data and the questions being asked. In conclusion, you really can't compare the task you are describing with SQL and a native spatial type in the database. Apples to Oranges. But, if others can provide their input and experience working with native spatial types - you may find the information useful. Good luck.
... View more
09-09-2010
08:44 AM
|
0
|
0
|
338
|
POST
|
Can you please tell us the ArcGIS release? Also, are you attempting to enable archiving on a feature dataset or class in a schema instance other than the master instance? Have you reported this issue to ESRI Support? Thanks, with more information we can attempt to reproduce your error.
... View more
08-19-2010
11:40 AM
|
0
|
0
|
1030
|
POST
|
Thank you Peter for explaining. If you are not an ArcObject's developer, then right now the methodology you are using is one of the few ways to obtain or identify which versions need to be reconciled with DEFAULT to be able to compress all the edits in the DEFAULT version's lineage to the base tables. If you are able to use ArcObjects, we have a method called RecommendedReconcileOrder which will return an enumeration of all versions which are preventing the DEFAULT version from being compressed (which prevents the rows in the delta tables from being moved to the base tables). Another methodolgy to obtain this information is via SQL - search the KB articles under versioning or recommended reconcile order and they will provide an example of how to detect these versions via SQL. Finally, this functional requirement is something we will be providing in the UI with core ArcGIS in the next release. Thanks.
... View more
08-18-2010
11:45 AM
|
0
|
0
|
367
|
POST
|
You can easily register a table with ArcGIS through ArcCatalog. Establish the connection with ArcCatalog to your instance. Find the table in the Catalog, right click to register with the geodatabase and then open the properties page and add a shape attribute. The only restriction to this workflow is you must register the table without a spatial type being present (because the types are not well defined - being a User Defined Type, UDT). So, unfortunately at this time, its a two step process. You don't need the ArcSDE command lines for all cases, although if your existing table does have a geometry attribute - then you could register it with ArcSDE via the command line and then register it with the geodatabase in Catalog. Good luck.
... View more
08-13-2010
08:16 AM
|
0
|
0
|
1197
|
POST
|
Any chance you could provide a description of what you're attempting to accomplish? What is it in your workflow or your admin task that you're attempting to learn from the tool? Thank you for any additional details.
... View more
08-13-2010
08:08 AM
|
0
|
0
|
367
|
POST
|
You'll have to modify your trigger, its mutating. See Oracle's documentation. Good luck.
... View more
08-05-2010
01:29 PM
|
0
|
0
|
100
|
POST
|
I have a sense everything is working correctly. It's your query. This is my query: SELECT hs.FULLNAME place, sa.name state FROM COM_GIS.tl_2009_pointlm hs, COM_GIS.TL_2009_US_STATE sa WHERE sa.stusps ='DC' and sde.st_overlaps(sde.st_buffer(hs.shape,.01), sa.shape) = 1; First you need to understand what your asking the operators and optimizer to do with your query... You have two tables in your query tl_2009_pointlm (aliased hs) and tl_2009_us_state (aliased sa). You've set a predicate filter sa.stusps to return all tl_2009_us_state objects that equal DC (let's assume that's just one object). That individual object is passed to the st_overlaps filter, sa.shape. The st_overlaps operator can use the spatial index of the table in the first position, but you don't have a table in the first position. You have a collection of buffered hs.shape objects. sde.st_overlaps(sde.st_buffer(hs.shape,.01), sa.shape) You've forced the optimizer to first buffer (st_buffer) each object in the tl_2009_pointlm table (that could be thousands or millions of points - only you know the data). As each of those objects are buffered, they are next tested with the input sa.shape for st_overlaps. Second, do you understand the definition of st_overlaps? ST_Overlaps ST_Overlaps compares two geometries of the same dimension and returns 1 or t (TRUE) if their intersection set results in a geometry different from both but of the same dimension. ST_Overlaps returns 1 or t (TRUE) only for geometries of the same dimension and only when their intersection set results in a geometry of the same dimension. In other words, if the intersection of two ST_Polygons results in an ST_Polygon, overlap returns 1 or t (TRUE). Therefore, when you buffer hs.shape does the output buffered object when overlapped with the sa.shape (DC) create a geometry that is different then both input geometries? You may want to use st_intersects if your objective is to return all the hs.shapes that intersect sa.shape. That's only a suggestion not knowing what your true objective is... Good luck.
... View more
08-05-2010
01:11 PM
|
0
|
0
|
283
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|