powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / классы Cache
25 сообщений из 27, страница 1 из 2
классы Cache
    #34964311
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Существует 2 класса на первый взгляд полностью идентичные : структура хранения и атрибуты одни. Из Delphi вызываю запрос, также один в один и в том и в другом случае. НО работа с одним классом происходит быстро, а с другим значительно медленнее. Хотя там где медленнее, данных почти в 3 раза меньше! Что это такое может быть, подскажите,пожалуйста.
...
Рейтинг: 0 / 0
классы Cache
    #34964525
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант, разное хранение данных... Даи "первый взгляд" может сыграть злую шутку.
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
классы Cache
    #34964534
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
но все реально один в один, в том числе и хранение данных
...
Рейтинг: 0 / 0
классы Cache
    #34964560
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажите классы для начала
...
Рейтинг: 0 / 0
классы Cache
    #34964605
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Экспортировать никак не могу, ошибка какая-то..а вы не можете мне хотя бы примерно сказать из-за чего это может быть, где искать хотя бы?
...
Рейтинг: 0 / 0
классы Cache
    #34964623
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо экспортировать, скопируйте описание класса из студии.

А какая ошибка при экспорте?
А при компиляции ошибок нет?
...
Рейтинг: 0 / 0
классы Cache
    #34964651
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При компиляции нету, а при экспорте-A fatal Cache' Server Error has occured. А в описании у меня ничегошеньки не написано(((( даже и не знаю, как быть!
...
Рейтинг: 0 / 0
классы Cache
    #34964675
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
persistent class User.KnigaPokypokNew extends %Library.Persistent


Public Properties


• property BezNalog As %Float
• property CorrectionFor As %Library.Integer [InitialExpression = 0;]
• property DateDoc As %String
• property DateLast As %Integer
• property DateOplati As %Integer
• property DatePrihoda As %Integer
• property DateSys As %Integer
• property INNPostav As %String
• property KPPPostav As %Library.String (MAXLEN = 11)
• property NamePostav As %String
• property NumGTD As %String
• property NumberDoc As %String
• property Organization As %Library.Integer (VALUELIST = ) [InitialExpression = 0;]
• list property PercentNDS As ZapisNDS
• property Pr0VAL As %Library.String [Calculated; Transient;]
• property Pr10NDS As %Library.Float [Calculated; Transient;]
• property Pr10VAL As %Library.String [Calculated; Transient;]
• property Pr18NDS As %Library.String [Calculated; Transient;]
• property Pr18VAL As %Library.String [Calculated; Transient;]
• property Pr20NDS As %Library.String [Calculated; Transient;]
• property Pr20VAL As %Library.String [Calculated; Transient;]
• property PrALL As %Library.String [Calculated; Transient;]
• property Strana As %String
• property SumPokup As %Float
• property ZAvansa As %Library.String
• property idFirm As %Integer
• property idOper As %String


Queries


• query DopList(Firm As %Library.Integer, DS As %Library.Integer, DF As %Library.Integer, Org As %Library.Integer)
Selects CorrectionFor As %Library.Integer
...
Рейтинг: 0 / 0
классы Cache
    #34964684
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
persistent class User.SellBook extends %Library.Persistent


Public Properties


• property CorrectionFor As %Library.Integer [InitialExpression = 0;]
• property DDN As %Library.String [Calculated; Transient;]
• property DateOplati As %Integer
• property DateSys As %Integer
• property DocDate As %String
• property DocNumber As %String
• property Flag As %Library.Integer [InitialExpression = 0;]
• property Organization As %Library.Integer (VALUELIST = ) [InitialExpression = 0;]
• list property PercentNDS As ZapisNDS
• property PokupINN As %String
• property PokupKPP As %Library.String (MAXLEN = 11)
• property PokupName As %String
• property Pr0VAL As %Library.String [Calculated; Transient;]
• property Pr10NDS As %Library.Float [Calculated; Transient;]
• property Pr10VAL As %Library.String [Calculated; Transient;]
• property Pr18NDS As %Library.String [Calculated; Transient;]
• property Pr18VAL As %Library.String [Calculated; Transient;]
• property Pr20NDS As %Library.String [Calculated; Transient;]
• property Pr20VAL As %Library.String [Calculated; Transient;]
• property PrALL As %Library.String [Calculated; Transient;]
• property SumSell As %Float
• property TaxFree As %Float
• property idFirm As %Integer
• property idOper As %String

Queries

• query DopList(Firm As %Library.Integer, DS As %Library.Integer, DF As %Library.Integer, Org As %Library.Integer)
Selects CorrectionFor As %Library.Integer

у этого класса есть еще методы, другие запросы, но это не относится
...
Рейтинг: 0 / 0
классы Cache
    #34964746
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Текст запроса вы не привели, поэтому окончательный диагноз ставить рано :) Но предварительный таков: в описаниях классов отсутствуют индексы. Если это действительно так, то скорость выполнения большинства запросов (за исключением простейших вида: select что-то from откуда-то where id = :Value) напрямую будет зависеть от объема хранимых данных. Т.е. замедление в 3 раза - это нормально. С легкостью может быть и в 33 :(
...
Рейтинг: 0 / 0
классы Cache
    #34964764
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Индексы есть. Текст запроса -
SELECT DISTINCT CorrectionFor
FROM KnigaPokypokNew
WHERE (((idFirm = :Firm) AND (101 <> :Firm)) OR (101 = :Firm)) AND
(DateOplati >= :DS) AND
(DateOplati <= :DF) AND
(Organization = :Org) AND
(CorrectionFor <> 0) AND
(CorrectionFor IS NOT NULL)
ORDER BY CorrectionFor
И самое интересное-то в том, что медленнее работает та база, в которой данных меньше!
...
Рейтинг: 0 / 0
классы Cache
    #34964963
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не убедили :) Неизвестно, какие индексы и в каком порядке используются, пока Вы не посмотрите планы запросов. Сделайте это - и найдите "10 различий" между эффективным и неэффективным планом.
...
Рейтинг: 0 / 0
классы Cache
    #34965023
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все-таки я просил привести текст класса (методы мне не нужны)
А вы скопировали только список полей. Зачем мне список полей?
Мне нужны индексы и текст запросов
...
Рейтинг: 0 / 0
классы Cache
    #34965035
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И также (как посоветова Алексей Маслов), выполните эти запросы в портале управления и нажмите кнопку план. План тоже интересно посмотреть.
...
Рейтинг: 0 / 0
классы Cache
    #34965059
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Индексы класса SellBook для свойств : DateOplati, DateSys, DocDate, DocNumber, Flag, idFirm.
Индексы класса KnigaPokypokNew для свойств : CorrectionFor, DateLast, DateOplati, DateSys, idFirm, NumberDoc, Organization.
Текст запроса я уже указала. SellBook работает быстро, а KnigaPokypokNew - медленно.
...
Рейтинг: 0 / 0
классы Cache
    #34965126
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно, что из вас приходится вытягивать информацию.
Сейчас нужно собирать информацию из ваших сообщений (причем вы даже не выделили информацию как текст программы)
Вы ведь заинтересованы в решении проблемы. Или мы запрашиваем секретную информацию?

Еще кстати селективности нужно бы, чтобы понять, почему какой план

На мой взгляд, не видя плана запроса (который от вас просили), могу предположить, что видя
ORDER BY CorrectionFor
отптимизатор запросо решает идти по этому индексу, что является неоптимальным.
Почему он так делает - для меня загадка. В моем случае помогло только удаление индекса.
(Игра с селективностями ничего не дала).

Но это только мои предположением (пока нет плана)
...
Рейтинг: 0 / 0
классы Cache
    #34965211
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прощу прощения, просто я еще новичок, что конкретно нужно для решения проблемы. И я , к сожалению, не могу выполнить план, может быть дело в том, что у нас версия Сache 4.1?
...
Рейтинг: 0 / 0
классы Cache
    #34965293
Daha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем большое спасибо!!! Получилось!! Просто удалила индекс CorrectionFor)))))
...
Рейтинг: 0 / 0
классы Cache
    #34965429
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый раз слышу что удаление индекса ускоряет обработку данных класса
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
классы Cache
    #34966908
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В 4.1 о плане можно догадываться только глядя на скомпилированный код запроса.
Как посмотреть план, записанный человеческими словами в каше 4.1 - я не знаю.
Но мы не знали, что у вас 4.1

А удаление индекса очень даже может ускорить работу запроса.
1. если неправильно рассчитаны селективности
2. если по индексированному полю есть сортировка.
В каше 5 по крайней мере если по индексированному полю есть сортировка, каше выберет его, даже если по этому полю нет фильтра. Почему так сделано - для меня загадка.

например запрос типа select * from table1 where date=? order by summa
пойдет по индексу суммы, а не даты (и повесит процесс). Побороть это удалось только удалив индексы по таким полям.
...
Рейтинг: 0 / 0
классы Cache
    #34967000
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однако!
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
классы Cache
    #34967302
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.например запрос типа select * from table1 where date=? order by summa
пойдет по индексу суммы, а не даты (и повесит процесс). Побороть это удалось только удалив индексы по таким полям.

select * from table1 where date=? and date>0 order by summa
...
Рейтинг: 0 / 0
классы Cache
    #34967388
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Григорий, поясните?
...
Рейтинг: 0 / 0
классы Cache
    #34967584
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное изменение условия помогает в этой проблеме :)
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
классы Cache
    #34968303
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лень косячить классы, чтобы это выяснить.
И почему именно такое изменение условия?
Именно знак<> побуждает компилятор запросов выбрать проход по нужному индексу?
В общем, ничего не понятно
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / классы Cache
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]