Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> улучшение произвидительности sqlite, подскажите как улучшить 
:(
    Опции темы
марина
Дата 28.5.2008, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 2.8.2006

Репутация: нет
Всего: нет



Есть одна таблица с 4-мя полями( в sqlite)

[code=sql]
номер контакта(пусть A) | свойство контакта(пусть B) | атрибут свойства© | значение атрибута(D)
 [code=sql]
Некоторые пояснения:
У обьекта есть номер(A), много свойств(около 15)(B), у свойст есть много атрибутов(около 5)©, а у каждого атрибута есть значение(D).
Сделаны индексы на номер контакта и свойство контакта.
Первое решение было:
1) вытащить все различные номера контакта (дешевая операция) 
2) потом для каждого номера вытаскивать:
        2.1) те поля у которых нет атрибутов и только одно значение(их несколько 4-5) -- это постоянные поля и есть у каждого обьекта
        2.2) затем вытаскиваем список всех полей (кроме предыдущих -- это легко определяется) -- это не постоянные поля и их может не быть, те у каждого обьекта они свои
         2.3) начинаем для каждого из вытащенных полей - вытаскивать одним запросом значения и атрибуты

Но все это довольно медленно и занимает несколько минут уже на 500 номеров контакта. Больше всего времени уходит на 2-ой пункт. Подскажите как можно улучшить производительность. 


      

PM MAIL   Вверх
Fortop
Дата 28.5.2008, 21:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 2
Всего: 42



1. а какой собственно запрос нужен?
Для разных запросов разные способы ускорения.


Если тебе не нужны агрегационные запросы, то, как вариант,  - нормализовать базу

Разнеси все в 3 разные таблицы

таблица контактов.
таблица свойств
таблица аттрибутов




--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0566 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.