Низкая производительность Core Data в iOS-приложении, созданном в симуляторе в macOS Mojave - PullRequest
0 голосов
/ 28 октября 2018

Создание одной и той же схемы базы данных в разных операционных системах происходит по-разному.Ключом является создание индексов.

macOS Mojave 10.14 Xcode Version 9.3 (9E145) Xcode Version 10.0 (10A255)

  1. Таблица DBREGION

    • CoreData: sql: СОЗДАЙТЕ ИНДЕКС, ЕСЛИ НЕ СУЩЕСТВУЕТ ZDBREGION_ZINDEX_INDEX НА ZDBREGION (ZINDEX)
    • CoreData: sql: СОЗДАЙТЕ ИНДЕКС, ЕСЛИ НЕ СУЩЕСТВУЕТ ZDBREGION_ZNAME_INDEX * 1013: END ZDBREGION: ZDBREGION Z1ЕСЛИ НЕ СУЩЕСТВУЕТ ZDBREGION_ZPASSPORT_INDEX ON ZDBREGION (ZPASSPORT)
  2. Таблица DBVALUE

    • CoreData: sql: СОЗДАТЬ ИНДЕКС, ЕСЛИ НЕ СУЩЕСТВУЕТ ZDBVALUE_K_ZD ZID
  3. CoreData: SQL: CREATE INDEX IF NOT EXISTS ZDBVALUE_ZPERIOD_INDEX ON ZDBVALUE (ZPERIOD)

macOs Hight Sierra 10.13.6 Xcode Version 9.4.1 (9F2000)

  1. Таблица DBREGION

    • CoreData: sql: CREATE INDEX ЕСЛИ НЕ СУЩЕСТВУЕТ ZDBREGION_ZPASSPORT_INDEX ON ZDBREGION (ZPASSPORT)
    • Coresql: СОЗДАТЬ ИНДЕКС, ЕСЛИ НЕ СУЩЕСТВУЕТ Z_DBRegion_index ON ZDBREGION (КОЛЛЕКТИВНЫЙ БИНАРНЫЙ ASC ZINDEX)
    • CoreData: sql: СОЗДАТЬ ИНДЕКС, ЕСЛИ НЕ СУЩЕСТВУЕТ Z_DBRegion_name В ZDBGE ZG1047 *
    • CoreData: sql: СОЗДАТЬ УКАЗАТЕЛЬ, ЕСЛИ НЕ СУЩЕСТВУЕТ Z_DBRegion_index ON ZDBREGION (ZINDEX COLLATE BINARY ASC)
    • CoreData: sql: СОЗДАТЬ УКАЗАТЕЛЬ ЕСЛИ НЕ СУЩЕСТВУЕТZ_DBRegion_name ON ZDBREGION (ZNAME COLLATE BINARY ASC)
  2. Таблица DBVALUE

    • CoreData: sql: СОЗДАТЬ ИНДЕКС, ЕСЛИ НЕ СУЩЕСТВУЕТ ZDBVALUE_ZINDEX ЗДБВ(ZINDICATOR)
    • CoreData: sql: СОЗДАЙТЕ ИНДЕКС, ЕСЛИ НЕ СУЩЕСТВУЕТ ZDBVALUE_ZPERIOD_INDEX ON ZDBVALUE (ZPERIOD)
    • CoreData: sql: СОЗДАЙТЕ ИНДЕКС, ЕСЛИ НЕ СУЩЕСТВУЕТ ZDBVALUE_ZEX_ZR(ZREGION)
    • CoreData: sql: СОЗДАТЬ ИНДЕКС, ЕСЛИ НЕ СУЩЕСТВУЕТ Z_DBValue_key_id ON ZDBVALUE (ZKEY_ID COLLATE BINARY ASC)
    • CoreData: sql: НЕ СОЗДАТЬ ИНДЕКСEXISTS Z_DBValue_key_id ON ZDBVALUE (ZKEY_ID COLLATE BINARY ASC)
    • CoreData: sql: СОЗДАТЬ ИНДЕКС, ЕСЛИ НЕ СУЩЕСТВУЕТ Z_DBValue_indicator_region_period В БИБЛИОТЕКЕ ZDBVALION, ЦИКЛ.
    • CoreData: sql: СОЗДАТЬ УКАЗАТЕЛЬ, ЕСЛИ НЕ СУЩЕСТВОВАТЬ* СОЗДАЙТЕ ИНДЕКС, ЕСЛИ НЕ СУЩЕСТВУЕТ Z_DBValue_region_isLastForRating ON ZDBVALUE (КОЛЛЕКЦИОННЫЙ Двоичный ASC ZREGION, ZISLASTFORRATING COLLATE BINARY ASC)
    • Базовые данные: sql: * 1090 ОБЪЕДИНЯЕТСЯ_ЗНАЧИТЕЛЬНЫЙ_ЗНАЧЕНИЕ_ЗНАЧЕНИЕ ЗНАЧЕНИЯ_ЗНАЧЕНИЕ_ZGЗЛАСТВАЛУОФИНДИКАТОР КОЛЛАТ БИNARY ASC, ZISNEWS COLLATE BINARY ASC)

Таким образом создаются дополнительные индексы COLLATE BINARS с префиксом Z_TableName в симуляторе macOs Hight Sierra.База данных, созданная симулятором в macOS Мохаве, очень медленная

От чего это зависит?Как это можно настроить?

...