Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Очень медленно выполняются запросы, Delphi+Interbase 
V
    Опции темы
samurai
Дата 27.7.2006, 04:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 26.1.2006
Где: РФ, Омск

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



База данных interbase 75Мб, 22 таблицы, доступ одновременно до 60 пользователей
запрос на элементарную запись заказа выполняется от 1 до 5 минут, все остальные запросы выполняются тоже долго, простой переход в конец выполняется минуту smile

Раньше занимался локальными таблицами Paradox и с помощью кэширования достигал хорошей скорости, как быть здесь?

спасибо
 
PM MAIL ICQ   Вверх
ТоляМБА
Дата 27.7.2006, 05:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


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

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



1. Индексы по нужным полям (по которым чаще всего ставятся условия поиска) есть?
2. 
Цитата(samurai @  27.7.2006,  04:47 Найти цитируемый пост)
простой переход в конец выполняется минуту 

А ты что, SQL не используешь? На последнюю запись переходишь простым перебором? 
PM   Вверх
samurai
Дата 27.7.2006, 06:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 26.1.2006
Где: РФ, Омск

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



1. 
 Вот пример таблицы заказов:
 
Код

CREATE TABLE ORDERS 
(
  ORD_KOD    INTEGER NOT NULL,
  ORD_KODSELL    INTEGER NOT NULL,
  ORD_KODBUY    INTEGER NOT NULL,
  ORD_KODOP    INTEGER NOT NULL,
  ORD_KODU    INTEGER,
  ORD_DATE    TIMESTAMP,
  ORD_SCHET    VARCHAR(10) CHARACTER SET WIN1251,
  ORD_SCHETD    TIMESTAMP,
  ORD_SCHETF    VARCHAR(10) CHARACTER SET WIN1251,
  ORD_SCHETFD    TIMESTAMP,
  ORD_PRORD    VARCHAR(10) CHARACTER SET WIN1251,
  ORD_PRORDD    TIMESTAMP,
  ORD_PAY    INTEGER default 0,
  ORD_SROK    VARCHAR(10) CHARACTER SET WIN1251,
  ORD_EDU    VARCHAR(20) CHARACTER SET WIN1251,
  ORD_DAYS    INTEGER,
  ORD_SNSP    INTEGER default 0,
  ORD_NDS    DECIMAL(3, 2),
  ORD_SUM    DECIMAL(3, 2),
  ORD_SUMNDS    DECIMAL(3, 2),
  ORD_ITOG    DECIMAL(3, 2),
  ORD_NSP    DECIMAL(3, 2),
  ORD_SUMNSP    DECIMAL(3, 2),
  ORD_ED    INTEGER,
  ORD_AGR    VARCHAR(255) CHARACTER SET WIN1251,
  ORD_ARH    INTEGER default 0,
 PRIMARY KEY (ORD_KOD)
);
ALTER TABLE ORDERS ADD FOREIGN KEY (ORD_KODSELL) REFERENCES SELLER (S_KOD);
ALTER TABLE ORDERS ADD FOREIGN KEY (ORD_KODBUY) REFERENCES BUYER (B_KOD);
ALTER TABLE ORDERS ADD FOREIGN KEY (ORD_KODOP) REFERENCES OPER (OP_KOD);


2. Пользуюсь по возможности только SQL
не считая навигаторов (tdbnavigator)

не использую first, last, next и др.

у меня "толстый клиент" все права доступа и личные настройки хранятся в приложении клиента

вроде 75Мб (только текстовые и числовые типы данных) это же не много?

должно же бысто работать? сервер позволяет   

Это сообщение отредактировал(а) samurai - 27.7.2006, 06:48
PM MAIL ICQ   Вверх
Akella
Дата 27.7.2006, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



сколько записей в таблице? если 100 тысяч, то минута, может и нормально для перехода в конец таблицы 
PM MAIL   Вверх
superVad
Дата 27.7.2006, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

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



как скорость зависит от количества подключенных пользователей?
какая конфигурация компа на котором база?

но в принципе медленно работает - надо эксперементировать и искать в чем проблема 
PM MAIL   Вверх
samurai
Дата 27.7.2006, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 26.1.2006
Где: РФ, Омск

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



to akella: таблиц 22, в каждой от 10000 до 60000 записей, не знаю как по количеству, но нормально работать это точно не даёт, какой то выход мне надо искать smile
вот поиск производится очень быстро, а запись долго.

to superVad я не знаю влияет ли количество подключений на скорость запроса.
 комп такой: 
 4 процессора Xeon-A (4.5x400) по 1800 МГц
 4х512 Мб = 2047Мб оперативки
 2x16Гб винчестеры зеркальные
 сетевухи гигабитные, сетка на 3com (48 портов х 2) switch с усилением
 ну маленькое вроде такое, но шустренькое

я просто вообще не знаю с чего начать копать, 
хотел услышать стандартные ошибки в построении таблиц и запросов

спасибо 
PM MAIL ICQ   Вверх
superVad
Дата 27.7.2006, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

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



если поиск производится очень быстро то проблемы скорей всего не с сеткой.
комп в принципе хороший

единственное что в голову приходит - если стоит сервер с архитектурой SuperServer то стоит поставить ClassicServer может быть. Он на многопроцесорных системах лучще работает 
PM MAIL   Вверх
jack128
Дата 29.7.2006, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(samurai @  27.7.2006,  04:47 Найти цитируемый пост)
запрос на элементарную запись заказа выполняется от 1 до 5 минут

ты хочешь сказать, что запрос
  insert into orders
  (...)
  values (...)
выполняется минуту??

Антивирь??? 
PM MAIL   Вверх
Alex
Дата 30.7.2006, 07:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

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



Все перебрали, кроме самого главного, текст вашего SQL, который якобы у вас там минуты выполняется можно увидеть?

Добавлено @ 07:14 
Цитата(samurai @  27.7.2006,  07:14 Найти цитируемый пост)
не использую first, last, next и др.

Интересно, а как без last вы попадаете на последнию запись?

Добавлено @ 07:21 
Цитата(samurai @  27.7.2006,  11:29 Найти цитируемый пост)
4 процессора Xeon-A (4.5x400) по 1800 МГц

Стоп! А какой версией Interbase вы пользуетесь? 


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
DimW
Дата 1.8.2006, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

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



Цитата(samurai @  27.7.2006,  10:29 Найти цитируемый пост)
вот поиск производится очень быстро, а запись долго.


и еще как вариант: может ты слишком много индексов насоздавал, грамотно построенные индексы могут ускорить работу селекта в сотни раз, но могут понизить скорость запросов на модификацию в десятки раз.  


Это сообщение отредактировал(а) DimW - 1.8.2006, 10:02
PM MAIL ICQ   Вверх
samurai
Дата 3.8.2006, 07:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 26.1.2006
Где: РФ, Омск

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



to jack128
ну не совсем, происходит ряд проверок
здесь же выполнение StoredProc (хранимые процедуры)
антивиря нет, доступ в онлайн запрещен

to Alex
next, last & etc стараюсь не использовать
но дбнавигатор использует именно их

Версия Interbase 6.5

Заметил следующее: с утра всё работает намного быстрее, мало клиентов, активность из 60 юзеров примерно 10, к обеду ситуация усложняется ввод заказа выполняется в несколько раз дольше, к вечеру у некоторых подвисают приложения-клиенты
Может проблемы с кэшью? где посмотреть?

to DimW
индексов от 1 до 6 на каждую таблицу, таблиц 22,
но в среднем получается 2-3 индекса на таблицу
это много?

спасибо всем кто помогает
PM MAIL ICQ   Вверх
Fedia
Дата 3.8.2006, 07:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



samurai,  Клиентских приложений много ? 60 клиентов, а клиентская программа у них одна ? Хорошо бы пересмотреть запросы, которые эта программа посылает на сервер, раз тормоза начинаются во время интенсивной работы с БД.
Хотя сервер мощный, если запросы в БД от клиентов просты, то он должен справляться с обработкой. Есть какие-либо сложные выборки данных типа запросов в несколько таблиц с объединением, вложенными запросами и т.п.


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
Alex
Дата 3.8.2006, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

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



Цитата(samurai @  3.8.2006,  08:15 Найти цитируемый пост)
Версия Interbase 6.5

http://ibase.ru/ibfaq.htm#proc
http://ibase.ru/ibfaq.htm#arch
http://ibase.ru/ibfaq.htm#que


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
superVad
Дата 3.8.2006, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

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



таки попробуй поставить FB 1.5 ClassicServer
PM MAIL   Вверх
Alex
Дата 3.8.2006, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

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



Цитата(superVad @  3.8.2006,  10:05 Найти цитируемый пост)
таки попробуй поставить FB 1.5 ClassicServer 

И получить 60 процессов, каждый будет требовать под себя свою память... ClassicServer является устаревшей технологией

Вы ни как не прочитаете самое главное, InterBase до версии 7.0 и FB до версии 2.0 не могут работать на многопроцессорной машине их нужно закруглять на один из процессоров
http://ibase.ru/devinfo/ht.htm

Это сообщение отредактировал(а) Alex - 3.8.2006, 09:45


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




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


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

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