Производительность составного индекса Oracle

Просто измените это и попробуйте, это работает для меня

    try {
        Log.i("act twitter...........", "ModifiedCustomTabBarActivity.class");
        // final JSONArray twitterFriendsIDsJsonArray = new JSONArray();
        IDs ids = mTwitter.mTwitter.getFriendsIDs(-1);// ids
        // for (long id : ids.getIDs()) {
        do {
            for (long id : ids.getIDs()) {               


                String ID = "followers ID #" + id;
                String[] firstname = ID.split("#");
                String first_Name = firstname[0];
                String Id = firstname[1];

                Log.i("split...........", first_Name + Id);

                String Name = mTwitter.mTwitter.showUser(id).getName();
                String screenname = mTwitter.mTwitter.showUser(id).getScreenName();


  //            Log.i("id.......", "followers ID #" + id);
    //          Log.i("Name..", mTwitter.mTwitter.showUser(id).getName());
    //          Log.i("Screen_Name...", mTwitter.mTwitter.showUser(id).getScreenName());
    //          Log.i("image...", mTwitter.mTwitter.showUser(id).getProfileImageURL());


            }
        } while (ids.hasNext());

    } catch (Exception e) {
        e.printStackTrace();
    }
2
задан APC 20 March 2019 в 10:06
поделиться

1 ответ

Если я сделаю COLUMN_01, COLUMN_02 и COLUMN_03 (все столбцы в предложении WHERE) в качестве составного индекса без изменения существующих индексов, это улучшит производительность?

Вероятно. Один индекс, который удовлетворяет всем критериям WHERE, служит полным путем доступа и, следовательно, является более эффективным, чем путь доступа с одним столбцом индекса. Оптимизатор выбирает один индекс, поэтому он будет индексировать чтение всех строк, соответствующих, скажем, критерию COLUMN_02, и фильтровать эти строки, используя критерии других столбцов.

Цена, которую вы платите за это улучшение производительности, - это издержки на поддержание дополнительного индекса. Поэтому вам следует подумать, нужны ли вам все три отдельных столбца (для других запросов).

есть ли порядок для столбцов составного индекса?

Да. Разместите их в порядке возрастания различных значений. Столбец ведущего индекса должен быть наименее различающим столбцом. Наличие уникального ключа в качестве ведущей колонки, вероятно, является катастрофой, хотя существуют крайние случаи, поэтому обязательно сравните их.

Если я использую OR вместо AND, как этот запрос, улучшит ли это производительность?

Вы собираетесь возвращать больше строк, что само по себе является дополнительной работой. В такой ситуации также сложно использовать индексы, поэтому, скорее всего, вы столкнулись с полным сканированием таблицы. Но почему бы не попробовать и посмотреть, что получится?

0
ответ дан APC 20 March 2019 в 10:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: