ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vladislav Pyatkov <vldpyat...@gmail.com>
Subject Re: Re: Why doesn't the index be used in my test?
Date Wed, 26 Oct 2016 07:07:43 GMT
Hi Bob,

Make sure ignite-indexing attends in classpath.

And try to remove  ccfg.setQueryEntities(qryEntities) from cache
configuration, when you using cfg.setIndexedTypes(Kc21Key.class,
Kc21.class).

On Wed, Oct 26, 2016 at 6:19 AM, 胡永亮/Bob <hu-yl@neusoft.com> wrote:

> Hi Vladislav
>
>     First, thank you for you help, I am sorry I can't read document
> carefully.
>
>     After I added CacheConfiguration.setIndexedTypes, no use.
>     The result of explaining sql is also:
>     sql = new SqlFieldsQuery(
>   "explain select BKC231 from Kc21 where akc273 = '王妍'");
>
>     CacheConfiguration<K, V> ccfg = new CacheConfiguration<>(cacheName);
>     ccfg.setCacheStoreFactory(storeFactory);
>     ccfg.setReadThrough(true);
>     ccfg.setWriteThrough(true);
>
>     Collection<JdbcType> jdbcTypes = new ArrayList<>();
>
>         jdbcTypes.add(jdbcTypeKa02(cacheName));
>         jdbcTypes.add(jdbcTypeKa06(cacheName));
>         jdbcTypes.add(jdbcTypeKc21(cacheName));
>         jdbcTypes.add(jdbcTypeKc22(cacheName));
>         jdbcTypes.add(jdbcTypeKc24(cacheName));
>         jdbcTypes.add(jdbcTypeKc60(cacheName));
>
>         storeFactory.setTypes(jdbcTypes.toArray(new
> JdbcType[jdbcTypes.size()]));
>
>         // Configure query entities.
>         Collection<QueryEntity> qryEntities = new ArrayList<>();
>
>         qryEntities.add(queryEntityKa02());
>         qryEntities.add(queryEntityKa06());
>         qryEntities.add(queryEntityKc21());
>         qryEntities.add(queryEntityKc22());
>         qryEntities.add(queryEntityKc24());
>         qryEntities.add(queryEntityKc60());
>
>         ccfg.setQueryEntities(qryEntities);
>
>         cfg.setBackups(0);
>         cfg.setMemoryMode(CacheMemoryMode.OFFHEAP_TIERED);
> cfg.setAtomicityMode(CacheAtomicityMode.ATOMIC);
> cfg.setCacheMode(CacheMode.PARTITIONED);
> cfg.setIndexedTypes(Kc21Key.class, Kc21.class);
>
>         cache = ignite.getOrCreateCache(cfg)
>
>         I don't where are the problems?  Look forward to your help.
>         Thank you.
>
> ------------------------------
> Bob
>
>
> *From:* Vladislav Pyatkov <vldpyatkov@gmail.com>
> *Date:* 2016-10-24 17:05
> *To:* user@ignite.apache.org
> *Subject:* Re: Why doesn't the index be used in my test?
> Hi Bob,
>
> If you put annotation on fields then need to use "CacheConfiguration.setIndexedTypes".
> But for Query Entity, you must discribe entiti in configuration
> (QueryEntity.setIndexes) without annotation.
>
> Please, look  at [1]
>
> If it doesn't help, provide your query configuration.
>
> [1]: https://apacheignite.readme.io/docs/sql-queries
>
> On Mon, Oct 24, 2016 at 10:47 AM, 胡永亮/Bob <hu-yl@neusoft.com> wrote:
>
>> Hi everyone,
>>
>>     I have a model Kc21, akc273 is its one String column .
>>
>>     I create the index in this column, as the following:
>>     @QuerySqlField(index = true)
>>     private String akc273;
>>
>>     Then I load data into cache from oracle, total 47535542 rows.
>>
>>     I execute the sql query to get the execute plan:
>>
>>
>>
>> *SqlFieldsQuery sql = new SqlFieldsQuery(
>>   "explain select BKC231 from Kc21 where akc273 = '王妍'"); logger.info
>> <http://logger.info>("execute plan:"+cache.query(sql).getAll());*
>>
>>     The result is:
>>     *execute plan:[[SELECT*
>>
>>
>>
>>
>>
>>
>>
>> *    BKC231 AS __C0FROM "Kc21Cache".KC21    /* "Kc21Cache".KC21.__SCAN_ */WHERE AKC273
= STRINGDECODE('\u738b\u598d')], [SELECT    __C0 AS BKC231FROM PUBLIC.__T0    /* "Kc21Cache"."merge_scan"
*/]]
>> *
>>
>>     I think this tell me that the index is not used in this sql. Why?
>>     And the query time also very long as the time before creating this
>> index.
>>
>>     Thank your reply. ^V^
>>
>>     Bob
>>
>> ------------------------------------------------------------
>> ---------------------------------------
>> Confidentiality Notice: The information contained in this e-mail and any
>> accompanying attachment(s)
>> is intended only for the use of the intended recipient and may be
>> confidential and/or privileged of
>> Neusoft Corporation, its subsidiaries and/or its affiliates. If any
>> reader of this communication is
>> not the intended recipient, unauthorized use, forwarding, printing,
>> storing, disclosure or copying
>> is strictly prohibited, and may be unlawful.If you have received this
>> communication in error,please
>> immediately notify the sender by return e-mail, and delete the original
>> message and all copies from
>> your system. Thank you.
>> ------------------------------------------------------------
>> ---------------------------------------
>>
>
>
>
> --
> Vladislav Pyatkov
>
>
> ------------------------------------------------------------
> ---------------------------------------
> Confidentiality Notice: The information contained in this e-mail and any
> accompanying attachment(s)
> is intended only for the use of the intended recipient and may be
> confidential and/or privileged of
> Neusoft Corporation, its subsidiaries and/or its affiliates. If any reader
> of this communication is
> not the intended recipient, unauthorized use, forwarding, printing,
> storing, disclosure or copying
> is strictly prohibited, and may be unlawful.If you have received this
> communication in error,please
> immediately notify the sender by return e-mail, and delete the original
> message and all copies from
> your system. Thank you.
> ------------------------------------------------------------
> ---------------------------------------
>



-- 
Vladislav Pyatkov

Mime
View raw message