Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

OMG - SQL? 
 
RPGShop
Sr. Member
 
Total Posts:  143
Joined:  2008-06-16
 

Who in the world writes queries like this and expect them to execute quickly?  This one took over 45 seconds on my 2 servers (one database one web):

# Time: 080714  2:06:10
# User@Host: rpgshop[rpgshop] @  [70.86.136.146]
# Query_time: 45  Lock_time: 0  Rows_sent: 14  Rows_examined: 365915
SELECT COUNT(DISTINCT entity_id) AS `count`, `catalogindex_eav`.`valueFROM `catalogindex_eavWHERE (entity_id in (SELECT `e`.`entity_idFROM `catalog_product_entity` AS `e`
 
INNER JOIN `catalog_category_product` AS `_table_positionON (_table_position.product_id=e.entity_id) AND (_table_position.category_id IN ('96''123''124''117''118''119''121''122''125''127''128''129''131''132''133''134''135''149''136''151''137''138''139''152''141''156''142''143''144''145''147''140''148''130''116'))
 
INNER JOIN `catalog_product_website` AS `_table_website_idON (_table_website_id.product_id=e.entity_id) AND (_table_website_id.website_id=1)
 
INNER JOIN `catalog_product_entity_int` AS `_table_status_defaultON (_table_status_default.entity_id e.entity_id) AND (_table_status_default.attribute_id='69') AND _table_status_default.store_id=0
 LEFT JOIN 
`catalog_product_entity_int` AS `_table_statusON (_table_status.entity_id e.entity_id) AND (_table_status.attribute_id='69') AND (_table_status.store_id='3')
 
INNER JOIN `catalog_product_entity_int` AS `_table_visibility_defaultON (_table_visibility_default.entity_id e.entity_id) AND (_table_visibility_default.attribute_id='74') AND _table_visibility_default.store_id=0
 LEFT JOIN 
`catalog_product_entity_int` AS `_table_visibilityON (_table_visibility.entity_id e.entity_id) AND (_table_visibility.attribute_id='74') AND (_table_visibility.store_id='3'WHERE (e.entity_type_id '4') AND (IFNULL(_table_status.value_table_status_default.valuein (1)) AND (IFNULL(_table_visibility.value_table_visibility_default.valuein (24)) AND (((e.entity_id '2942') or (e.entity_id '2977') or (e.entity_id '2978') or (e.entity_id '2979') or (e.entity_id '2980') or (e.entity_id '2994') or (e.entity_id '3052') or (e.entity_id '3053') or (e.entity_id '3054') or (e.entity_id '3055') or (e.entity_id '3070') or (e.entity_id '3071') or (e.entity_id '3072') or (e.entity_id '3074') or (e.entity_id '3075') or (e.entity_id '3077') or (e.entity_id '3078') or (e.entity_id '3079') or (e.entity_id '3080') or (e.entity_id '3081') or (e.entity_id '3082') or (e.entity_id '3083') or (e.entity_id '3084') or (e.entity_id '3085') or (e.entity_id '3086') or (e.entity_id '3087') or (e.entity_id '3088') or (e.entity_id '3089') or (e.entity_id '3090') or (e.entity_id '3109') or (e.entity_id '3110') or (e.entity_id '3111') or (e.entity_id '3117') or (e.entity_id '3118') or (e.entity_id '3121') or (e.entity_id '3123') or (e.entity_id '3125') or (e.entity_id '3126') or (e.entity_id '3127') or (e.entity_id '3128') or (e.entity_id '3130') or (e.entity_id '3131') or (e.entity_id '3132') or (e.entity_id '3133') or (e.entity_id '3134') or (e.entity_id '3135') or (e.entity_id '3136') or (e.entity_id '3137') or (e.entity_id '3138') or (e.entity_id '3139') or (e.entity_id '3141') or (e.entity_id '3142') or (e.entity_id '3143') or (e.entity_id '3144') or (e.entity_id '3145') or (e.entity_id '3146') or (e.entity_id '3147') or (e.entity_id '3150') or (e.entity_id '3158') or (e.entity_id '3159') or (e.entity_id '3171') or (e.entity_id '3177') or (e.entity_id '3181') or (e.entity_id '3182') or (e.entity_id '3184') or (e.entity_id '3192') or (e.entity_id '3193') or (e.entity_id '3194') or (e.entity_id '3195') or (e.entity_id '3196') or (e.entity_id '3212') or (e.entity_id '3213') or (e.entity_id '3214') or (e.entity_id '3216') or (e.entity_id '3217') or (e.entity_id '3219') or (e.entity_id '3220') or (e.entity_id '3221') or (e.entity_id '3226') or (e.entity_id '3240') or (e.entity_id '3241') or (e.entity_id '3242') or (e.entity_id '3243') or (e.entity_id '3253') or (e.entity_id '3260') or (e.entity_id '3263') or (e.entity_id '3264') or (e.entity_id '3267') or (e.entity_id '3268') or (e.entity_id '3269') or (e.entity_id '3270') or (e.entity_id '3271') or (e.entity_id '3272') or (e.entity_id '3273') or (e.entity_id '3274') or (e.entity_id '3275') or (e.entity_id '3276') or (e.entity_id '3278') or (e.entity_id '3279') or (e.entity_id '3288') or (e.entity_id '3289') or (e.entity_id '3291') or (e.entity_id '3292') or (e.entity_id '3293') or (e.entity_id '3294') or (e.entity_id '3312') or (e.entity_id '3342') or (e.entity_id '3343') or (e.entity_id '3344') or (e.entity_id '3345') or (e.entity_id '3346') or (e.entity_id '3348') or (e.entity_id '3349') or (e.entity_id '3350') or (e.entity_id '3351') or (e.entity_id '3352') or (e.entity_id '3353') or (e.entity_id '3354') or (e.entity_id '3364') or (e.entity_id '3365') or (e.entity_id '3371') or (e.entity_id '3375') or (e.entity_id '3376') or (e.entity_id '3392') or (e.entity_id '3400') or (e.entity_id '3401') or (e.entity_id '3402') or (e.entity_id '3407') or (e.entity_id '3408') or (e.entity_id '3449') or (e.entity_id '3452') or (e.entity_id '3453') or (e.entity_id '3461') or (e.entity_id '3462') or (e.entity_id '3463') or (e.entity_id '3471') or  ....

Anyway, too big to post here, but that goes on for pages.
James

 
Magento Community Magento Community
Magento Community
Magento Community
 
Agent Mo
Member
 
Avatar
Total Posts:  51
Joined:  2008-07-14
 

Interesting,

at what point is this query executed?

 
Magento Community Magento Community
Magento Community
Magento Community
 
RPGShop
Sr. Member
 
Total Posts:  143
Joined:  2008-06-16
 

I’m not sure - it’s in my sql-slow.log file and so based on the above I believe it’s doing it for the filter counts on the side… some of them are done by “IN ( SELECT “ statements which are very slow and a bad idea… but apparently this one is done by a concatination of about 500 product “OR (entity_id = xxx)” which is also pretty bad when it should use a list with “IN (xxx,yyy,zzz....)”

While this system is flexible, the sql it generates and uses is really obnoxious and huge most of the time. I had a hell of a time figuring out where to get data for our .net app to interface. Now I fear that the v1.1 changed all the sales order tables and I’ll be spending a long time fixing that when it comes out. :(

I’ve attached a file with a couple sql’s that show up repeatedly in my slow log.

James
http://www.rpgshop.com

File Attachments
slowsql.txt  (File Size: 31KB - Downloads: 82)
 
Magento Community Magento Community
Magento Community
Magento Community
 
Agent Mo
Member
 
Avatar
Total Posts:  51
Joined:  2008-07-14
 

True, pretty bad sql - really. Seems that it is genearted, with no eye on optimization. Hope it’s getting better in the future…

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top