powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / теоретический вопрос про ошибку UNDEFINED
25 сообщений из 60, страница 2 из 3
теоретический вопрос про ошибку UNDEFINED
    #34922678
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще подскажите пжлст
1. как расчитать сколько дней товар находился в продаже (может быть есть функция описанная в м-аптеке)
2. как получить остаток товара на определенную дату по определенному подразделению
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34922687
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarinбез функции запрос выполянется намного дольше
Тогда сделать т.с. совмещенный вариант. Ведь результаты запроса где-то считываются? Так вот вызывать эту функцию при считывании данных из "основного" запроса.
Такой вариант поможет в тестировании самой функции! :) Будет понятно при каких значениях возникает ошибка. Если она еще будет появляться...
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34922703
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarinи еще подскажите пжлст
Это вопросы по конкретной программке или "вообще"?
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34922711
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin
без функции запрос выполянется намного дольше
Запрос в студию!
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34922764
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Mandarinи еще подскажите пжлст
Это вопросы по конкретной программке или "вообще"?

это общий вопрос но расчет будет выполняться в конкретной программе разработчики которой, насколько мне изветсно, являются участниками данного форума. поэтому вопрос прежде всего к ним.
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34922770
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Коблов Mandarin
без функции запрос выполянется намного дольше
Запрос в студию!
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34922783
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос я уже писал он остался на первой страничке данного топика
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34922796
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin , если у тебя есть поля типа Date, тебе достаточно посчитать разность и прибавить единицу (если нужно)...

Второй вопрос дюже специфичен... Эт к разработчикам Или расскажи про таблицы какие там есть...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34922807
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarinзапрос я уже писал он остался на первой страничке данного топика
Я имел в виду запрос, в котором не используется эта функция. Непонятно, почему без неё выполняется медленнее чем с ней
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34922808
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarinзапрос я уже писал он остался на первой страничке данного топика
Ты про этот запрос?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
insert into Real_INF 
select 
drugs->lastobj->fullname,
drugs->extcode,
$$GetOstByExtCode^InfUtils(drugs->extcode),
sum(Quantity),
sum(SumCenaRoz),
sum(SumCenaRoz)-sum(Quantity*CenaZak)
from docdata 
where daterec between "01/01/2007" and "03/01/2007" 
and destroyed= 0  
and docs->status1= 1 
and docs->doctype->tablename in ( 15 , 20 ) 
and kpr->extcode= 4  
group by drugs->lastobj->fullname, drugs->extcode
Так он с функцией... А ты сделай в SQLе... Но без функции.
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34922818
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Mandarin , если у тебя есть поля типа Date, тебе достаточно посчитать разность и прибавить единицу (если нужно)...

Второй вопрос дюже специфичен... Эт к разработчикам Или расскажи про таблицы какие там есть...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT

если считать по разнице дат ... можно при мер ? если он уже где то используется

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

и есть одно но на одном движке каше в разных базах эта процедура выполняется по разному т.е. в одной базе 30 секунд в другой 20 минут с чем это связанно поянть не могу структура таблиц одинаковая все индексы в таблицах тоже совпадают
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34922952
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Mandarinзапрос я уже писал он остался на первой страничке данного топика
Ты про этот запрос?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
insert into Real_INF 
select 
drugs->lastobj->fullname,
drugs->extcode,
$$GetOstByExtCode^InfUtils(drugs->extcode),
sum(Quantity),
sum(SumCenaRoz),
sum(SumCenaRoz)-sum(Quantity*CenaZak)
from docdata 
where daterec between "01/01/2007" and "03/01/2007" 
and destroyed= 0  
and docs->status1= 1 
and docs->doctype->tablename in ( 15 , 20 ) 
and kpr->extcode= 4  
group by drugs->lastobj->fullname, drugs->extcode
Так он с функцией... А ты сделай в SQLе... Но без функции.

а-а я просто неправельно понял, без функции он выполняется без ошибки и естественно быстре,
я имел ввиду точто если расчитывать остаток в данной функции спомощью подзапроса то будет дольше чем с подзапросом
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34923849
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarinесли считать по разнице дат ... можно при мер ? если он уже где то используется

Вот сделал для примера...
Класс
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
/// Тест
Class tmp.Test Extends %Persistent [ ClassType = persistent, ProcedureBlock ]
{

/// Прибыл
Property Dat1 As %Date;

/// Убыл
Property Dat2 As %Date;

}
Программка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE
 n
 s o=##class(tmp.Test).%New()
 s o.Dat1= 60266 
 s o.Dat2=+$h
 d o.%Save()
 d o.%Close()
 q
Запрос сделал в SQL менеджере
Код: plaintext
1.
2.
3.
4.
select
 *,
 Dat2-Dat1+ 1 
 from
 tmp.Test
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34923854
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarinи есть одно но на одном движке каше в разных базах эта процедура выполняется по разному т.е. в одной базе 30 секунд в другой 20 минут с чем это связанно поянть не могу структура таблиц одинаковая все индексы в таблицах тоже совпадают
Возможно "виновата" фрагментированость одной из БД... Хотя такая разница!
А что значит "один движок"? Каше одно и у нее две области? Или даже компьютеры разные?
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34924040
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, фрагментация конечно не должна давать такую разницу. Если только не физические проблемы с диском.

То, что структура таблиц совпадает, и индексы такие же, не дает основания предполагать, что запросы проходят одинаково. Нужно как минимум посмотреть планы запросов, и если планы действительно разные, уже смотреть селективности и все такое.
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34924448
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такое вот тупое предложение. Вставить в функцию одну строчку:
Код: plaintext
1.
2.
GetOstByExtCode(Extcode)
 n (Extcode)
 ...
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34924462
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так у них же
Код: plaintext
 n res,ost
Должно и так "пропускать" переменную Extcode...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34924555
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Замечено, что ISC не все свои переменные "ньючит", причем чем древнее версия Cache, тем вероятность на это напороться выше. Т.е., код, сгенерированный для выполнения динамического запроса в функции может запортить что-то в вызывающем динамическом запросе. Поэтому и возникло предложение.
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34924674
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslovкод, сгенерированный для выполнения динамического запроса в функции может запортить что-то в вызывающем динамическом запросе
Вона че... Ясно.
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34924907
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Mandarinи есть одно но на одном движке каше в разных базах эта процедура выполняется по разному т.е. в одной базе 30 секунд в другой 20 минут с чем это связанно поянть не могу структура таблиц одинаковая все индексы в таблицах тоже совпадают
Возможно "виновата" фрагментированость одной из БД... Хотя такая разница!
А что значит "один движок"? Каше одно и у нее две области? Или даже компьютеры разные?
один компьютер один движек но разные области отличается только размер БД одна 2,5 ГБ другая 1,3 ну я не думаю что из за этого будет такая разница, компьютер в принципе достаточно мощный 2гб ОЗУ core 2 DUO 2 ГГц
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34924921
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa Mandarinесли считать по разнице дат ... можно при мер ? если он уже где то используется

Вот сделал для примера...
Класс
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
/// Тест
Class tmp.Test Extends %Persistent [ ClassType = persistent, ProcedureBlock ]
{

/// Прибыл
Property Dat1 As %Date;

/// Убыл
Property Dat2 As %Date;

}
Программка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE
 n
 s o=##class(tmp.Test).%New()
 s o.Dat1= 60266 
 s o.Dat2=+$h
 d o.%Save()
 d o.%Close()
 q
Запрос сделал в SQL менеджере
Код: plaintext
1.
2.
3.
4.
select
 *,
 Dat2-Dat1+ 1 
 from
 tmp.Test


это слишком просто :)

есть подводные камни...
1. т.к. расчет этот нужно делать в определенном периоде например 3 месяца дата прихода может не войти в этот период так как и дата расхода
2. у товара может быть несколько партий и расходоваться они могут в произвольном порядке а не в порядке поступления.
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34924932
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Нет, фрагментация конечно не должна давать такую разницу. Если только не физические проблемы с диском.

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

планы запросов одинаковые я проверял базы лежат на одном физическом диске поэтому проблемы в диске не должно быть, а как проверить селективность ? ниразу этого не делал...
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34924949
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovТакое вот тупое предложение. Вставить в функцию одну строчку:
Код: plaintext
1.
2.
GetOstByExtCode(Extcode)
 n (Extcode)
 ...


это не подходит запрос теперь постоянно выдает UNDEFINED а не только при первом запуске :)
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34925183
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarinкак проверить селективность?
Запустите проверку целостности - она покажет процент заполнения... В 5.0.* есть режим устранения дефрагментации "Сжатие базы данных".
Мало того! IS вооружил нас программкой "уменьшения" самого файла cache.dat Мы ей пользуемся после "долгосрочного архивирования" (это наш термин).
...
Рейтинг: 0 / 0
теоретический вопрос про ошибку UNDEFINED
    #34925192
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarinесть подводные камни...
Тогда праграмм-маграмм писать нада.
...
Рейтинг: 0 / 0
25 сообщений из 60, страница 2 из 3
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / теоретический вопрос про ошибку UNDEFINED
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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