Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id A6F37200CBD for ; Thu, 6 Jul 2017 14:34:23 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id A55A91663ED; Thu, 6 Jul 2017 12:34:23 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id EB5B41663EC for ; Thu, 6 Jul 2017 14:34:22 +0200 (CEST) Received: (qmail 67552 invoked by uid 500); 6 Jul 2017 12:34:22 -0000 Mailing-List: contact user-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@ignite.apache.org Delivered-To: mailing list user@ignite.apache.org Received: (qmail 67542 invoked by uid 99); 6 Jul 2017 12:34:22 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Jul 2017 12:34:22 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 82EC7189148 for ; Thu, 6 Jul 2017 12:34:21 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.423 X-Spam-Level: ** X-Spam-Status: No, score=2.423 tagged_above=-999 required=6.31 tests=[DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_ENVFROM_END_DIGIT=0.25, NML_ADSP_CUSTOM_MED=1.2, RCVD_IN_DNSWL_NONE=-0.0001, SPF_SOFTFAIL=0.972] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id FOj48Scl-LdT for ; Thu, 6 Jul 2017 12:34:20 +0000 (UTC) Received: from mwork.nabble.com (mwork.nabble.com [162.253.133.43]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id C109E5F6C2 for ; Thu, 6 Jul 2017 12:34:19 +0000 (UTC) Received: from static.162.255.23.37.macminivault.com (unknown [162.255.23.37]) by mwork.nabble.com (Postfix) with ESMTP id A53415065114F for ; Thu, 6 Jul 2017 05:34:18 -0700 (MST) Date: Thu, 6 Jul 2017 05:34:18 -0700 (MST) From: neerajbhatt To: user@ignite.apache.org Message-ID: <1499344458667-14389.post@n6.nabble.com> Subject: slow performance when using order by clause MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit archived-at: Thu, 06 Jul 2017 12:34:23 -0000 Hi All We are running below query on two caches (item and rank) SELECT T._VAL FROM ITEMCACHE.Item as T, IGPCACHE.Rank r WHERE T.uniqueSkuId = r.uniqueSkuId AND T.rating=? AND T.reviews=? AND T.downloads=?+ " order by rank desc limit 10 while we are getting good result (~10 ms in 1.4 million of item objects) when order by is not used. In case of order by the performance is very bad (200 ms in 1000 item objects) Please suggest //item class public class Item implements Serializable { private static final long serialVersionUID = 1L; @QuerySqlField(index = true) private int downloads; @QuerySqlField(index = true) private double rating; @QuerySqlField(index = true) private int reviews; @QuerySqlField(index = true) @AffinityKeyMapped private String uniqueSkuId; public int getDownloads() { return downloads; } public void setDownloads(int downloads) { this.downloads = downloads; } public String getUniqueSkuId() { return uniqueSkuId; } public void setUniqueSkuId(String uniqueSkuId) { this.uniqueSkuId = uniqueSkuId; } public double getRating() { return rating; } public void setRating(double rating) { this.rating = rating; } public int getReviews() { return reviews; } public void setReviews(int reviews) { this.reviews = reviews; } public static long getSerialversionuid() { return serialVersionUID; } // rank class ublic class Rank { @QuerySqlField(index = true) private long id; @QuerySqlField(index = true) private String geoId; @QuerySqlField(index = true) @AffinityKeyMapped private String uniqueSkuId; @QuerySqlField(index = true,descending=true) private long rank; public long getRank() { return rank; } public void setRank(long rank) { this.rank = rank; } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getGeoId() { return geoId; } public void setGeoId(String geoId) { this.geoId = geoId; } public String getUniqueSkuId() { return uniqueSkuId; } public void setUniqueSkuId(String uniqueSkuId) { this.uniqueSkuId = uniqueSkuId; } //explain plan SELECT T__Z0._VAL AS __C0_0, R__Z1.RANK AS __C0_1 FROM ITEMCACHE.ITEM T__Z0 /* ITEMCACHE.ITEM_RATING_IDX: RATING = ?1 */ /* WHERE (T__Z0.RATING = ?1) AND ((T__Z0.DOWNLOADS = ?3) AND (T__Z0.REVIEWS = ?2)) */ INNER JOIN IGPCACHE.RANK R__Z1 /* IGPCACHE.RANK_UNIQUESKUID_IDX: UNIQUESKUID = T__Z0.UNIQUESKUID */ ON 1=1 WHERE (T__Z0.DOWNLOADS = ?3) AND ((T__Z0.REVIEWS = ?2) AND ((T__Z0.RATING = ?1) AND (T__Z0.UNIQUESKUID = R__Z1.UNIQUESKUID))) ORDER BY 2 DESC LIMIT 10 SELECT __C0_0 AS _VAL FROM PUBLIC.__T0 /* IGPCACHE.merge_sorted */ ORDER BY =__C0_1 DESC LIMIT 10 /* index sorted */ -- View this message in context: http://apache-ignite-users.70518.x6.nabble.com/slow-performance-when-using-order-by-clause-tp14389.html Sent from the Apache Ignite Users mailing list archive at Nabble.com.