Select to view content in your preferred language

Building Database Relates in Pro is ten times slower

145
4
Wednesday
KimOllivier
Honored Contributor

I have a python script that built database relates in ArcMap in a filegeodatabase. They are many-to-many relates between three tables using a relationship table in the middle. This is the design from the source in PostGIS that I want to replicate. The keys between the tables are indexed integer fields. This all worked well in ArcMap and building the relates took a few minutes.

Now in ArcGISPro the same script takes many hours! What has happened?

[As a side-issue, BigInteger keys cause a crash, they must be 32 bit Integers]

The tables are medium sized, typically 2M records. Note that you cannot rename any tables afterwards, you have to rebuild from scratch. All tables must be in the same filegeodatabase. The relation table built is a semi-hidden table, hard to delete in a script.

Has anyone else noticed this? Do you have any suggestions to restore the speed? Maybe remove the indexes before building the relates and re-creating afterwards.

0 Kudos
4 Replies
MichaelVolz
Esteemed Contributor

What version of Pro are you working with?

0 Kudos
KimOllivier
Honored Contributor
I have just upgraded to 3.4.0 which is no better. It has been a problem
ever since 3.3.1. Maybe due to BigInteger introduction?
0 Kudos
MikeVolz
Frequent Contributor

Do you have a test computer that you can install ArcGIS Pro 3.1 on and see how these relates worked before BigInteger was introduced as I believe that data type was introduced in Pro 3.2?

0 Kudos
KimOllivier
Honored Contributor

Good idea, but how will it help? I really should look up some logs to see how long it took in ArcMap. Since Esri have turned off my licence for the Pro downgrade I cannot run it now. I really just want normal speed. I have got rid of any BigInteger and BigObjectID fields ( well you have to or CreateRelation() crashes).

April 2024 ArcMap:

--------------------



Build relates 10:34sec (expected time!!)

Rebuild CoraxPro Relates

Process: Table To Relationship Class... lgp rel_parcel_legal

Process: Table To Relationship Class... afp rel_parcel_plan

Process: Table To Relationship Class... title_rel rel_parcel_title

Process: Table to Relationship Class... sap rel_gazette_detail

Building sap_rel...

Process: Relationship Class... sta-sap rel_parcel_gazette

Building sta_rel...

Process: Relationship Class... sta-ste rel_gazette_act

Building ste_rel...

Process: Create Relationship Class... nmi_rel  rel_title_name

licence is ArcInfo


Process: Table To Relationship Class... lgp rel_parcel_legal


Process: Table To Relationship Class... afp rel_parcel_plan


Process: Table To Relationship Class... title_rel rel_parcel_title





Process: Table to Relationship Class... sap rel_gazette_detail





Process: Relationship Class... sta-sap rel_parcel_gazette





Process: Relationship Class... sta-ste rel_gazette_act


Process: Create Relationship Class... nmi_rel  rel_title_name


Python error in nmi  "Nominal_Index" does not exist





Well Done 0:13:58.288000
\0



Feb 2025 ArcGISPro same script upgraded for Python 3.....
========================================================


Build relates 10:34sec expected

Rebuild CoraxPro Relates

Process: Table To Relationship Class... lgp rel_parcel_legal

Process: Table To Relationship Class... afp rel_parcel_plan

ERROR: Failed to execute. Parameters are not valid.

ERROR 000800: The value is not a member of abey_prior_status | cadastral_surv_acc | certified_date | chf_sur_amnd_date | data_source | dataset_id | dataset_series | dataset_suffix | description | dlr_amnd_date | et_created | et_edited | OBJECTID | registered_date | splan | survey_class | survey_date | surveyor_data_ref | type_of_dataset | usr_id_sol.

Failed to execute (TableToRelationshipClass).



Process: Table To Relationship Class... title_rel rel_parcel_title

Process: Table to Relationship Class... sap rel_gazette_detail

Building sap_rel...

Process: Relationship Class... sta-sap rel_parcel_gazette

Building sta_rel...

Process: Relationship Class... sta-ste rel_gazette_act

Building ste_rel...

Process: Create Relationship Class... nmi_rel  rel_title_name

Building nmi_rel...

licence is ArcInfo


Failed to execute. Parameters are not valid.


ERROR 000800: The value is not a member of abey_prior_status | cadastral_surv_acc | certified_date | chf_sur_amnd_date | data_source | dataset_id | dataset_series | dataset_suffix | description | dlr_amnd_date | et_created | et_edited | OBJECTID | registered_date | splan | survey_class | survey_date | surveyor_data_ref | type_of_dataset | usr_id_sol.


Failed to execute (TableToRelationshipClass).




Start Time: Friday, 23 February 2024 7:52:46 pm


Failed to execute. Parameters are not valid.


ERROR 000800: The value is not a member of et_created | et_edited | OBJECTID | original_flag | purpose | share | status | term | timeshare_week_no | ttl_title_no | type.


Failed to execute (TableToRelationshipClass).


Failed at Friday, 23 February 2024 7:52:46 pm (Elapsed Time: 0.06 seconds
==================================================================
Well Done 2:46:45.2 WHAT? and if the field widths are fixed it's 5 hours!



Note failures are due to BigIntegers that have crept in, I have now realised.


0 Kudos