01.06.2017, 10:58 | #1 |
Участник
|
Быстродействие метда TaxParameters::find
AX20012 R2
На таблице TaxParameters метод find интенсивно вызывается при разноске накладной. Журнал трассировки операторов SQL показывает, что этот метод выполняется в среднем 0,1 - 0,15 секунды. Но из-за того, что он вызывается сотни раз, получается задержка. Почему-то этот метод генерирует на SQL-сервере создание нескольких временных таблиц при каждом своем вызове. Таблица TaxParameters - обычная, не временная. Вот стек вызовов: https://yadi.sk/i/u5NxMX2L3JignR Вот код метода find PHP код:
X++: select firstonly parameter index key where parameter.Key == 0; CREATE TABLE tempdb."DBO".t435_835E0CB815E343869072DE3F542E1E75 (TAXGROUP NVARCHAR(10) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '' ,TAXITEMGROUP NVARCHAR(10) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '' ,TAXSPECIFYLINE INT NOT NULL DEFAULT 0 ,JOURNALINCLTAX INT NOT NULL DEFAULT 0 ,CALCULATEPRINCIPLE INT NOT NULL DEFAULT 0 ,PURCHTAXONOPERATIONS INT NOT NULL DEFAULT 0 ,KEY_ INT NOT NULL DEFAULT 0 ,CASHDISCONINVOICE INT NOT NULL DEFAULT 0 , TAXLESSCASHDISC INT NOT NULL DEFAULT 0 ,REVERSEONCASHDISC INT NOT NULL DEFAULT 0 ,TAXCALCULATIONDATETYPE INT NOT NULL DEFAULT 0 ,TAXONOVERPAYMENT INT NOT NULL DEFAULT 0 , REPORTADJUSTMENT INT NOT NULL DEFAULT 0 ,CONDITIONALTAX INT NOT NULL DEFAULT 0 ,CHECKINTERSECTION INT NOT NULL DEFAULT 0 ,ALLOWDUPLICATES INT NOT NULL DEFAULT 0 , VALIDATETAXCODE INT NOT NULL DEFAULT 0 ,TAXREPORT_JP INT NOT NULL DEFAULT 0 ,MANDATORYTAXDIRECTION INT NOT NULL DEFAULT 0 ,CUSTOMS_IN INT NOT NULL DEFAULT 0 , SERVICETAX_IN INT NOT NULL DEFAULT 0 ,EXCISE_IN INT NOT NULL DEFAULT 0 ,SALESTAX_IN INT NOT NULL DEFAULT 0 ,VAT_IN INT NOT NULL DEFAULT 0 , VENDORCALCULATIONDATETYPE_IN INT NOT NULL DEFAULT 0 ,CUSTOMERCALCULATIONDATETYPE_IN INT NOT NULL DEFAULT 0 ,TAXRECOVERABLE_IN INT NOT NULL DEFAULT 0 , REVERSESETTLEMENTDATEPRINCIPLE_W INT NOT NULL DEFAULT 0 ,EXIMINCENTIVESCHEMES_IN INT NOT NULL DEFAULT 0 ,RESTOREDVATGAINCALCMETHOD_RU INT NOT NULL DEFAULT 0 , RESTOREDVATCALCMETHOD_RU INT NOT NULL DEFAULT 0 ,PERSONTITLE_CZ NVARCHAR(30) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '' ,TAXREPORTFACTOR_CZ NUMERIC(32,16) NOT NULL DEFAULT 0 , MAINECONOMICACTIVITYCODE_CZ NVARCHAR(6) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '' ,NATURALPERSONFIRSTNAME_CZ NVARCHAR(20) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '' ,NATURALPERSONLASTNAME_CZ NVARCHAR(36) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '' ,TAXPAYERSTATUS_CZ INT NOT NULL DEFAULT 0 ,TAXPAYERTYPE_CZ INT NOT NULL DEFAULT 0 ,MAINECONOMICACTIVITYCODE_LT NVARCHAR(6) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '' ,DEDUCTIONPERCENT_LT NUMERIC(32,16) NOT NULL DEFAULT 0 , TAXSPECPOSTING_RU INT NOT NULL DEFAULT 0 ,INCOMINGVATPAYMENT_RU INT NOT NULL DEFAULT 0 ,EXCHRATEDIFFDOCTYPE_RU INT NOT NULL DEFAULT 0 ,BANKEXCHRATE_W INT NOT NULL DEFAULT 0 , REPORTUSEVATDUEDATE_W INT NOT NULL DEFAULT 0 ,SALESTAXPAYABLEEXCHANGERATETYPE BIGINT NOT NULL DEFAULT 0 ,SALESTAXRECEIVABLEEXCHANGERATETYPE BIGINT NOT NULL DEFAULT 0 ,SERVICETAXACBASIS_IN INT NOT NULL DEFAULT 0 ,TAXBRANCHENABLED INT NOT NULL DEFAULT 0 ,MODIFIEDDATETIME DATETIME NOT NULL DEFAULT dateadd(ms, -datepart(ms,getutcdate()), getutcdate()) , DEL_MODIFIEDTIME INT NOT NULL DEFAULT 0 ,MODIFIEDBY NVARCHAR(8) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '?' ,DATAAREAID NVARCHAR(4) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT 'dat' ,RECVERSION INT NOT NULL DEFAULT 1 ,PARTITION BIGINT NOT NULL DEFAULT 5637144576 ,RECID BIGINT IDENTITY NOT NULL CHECK (RECID <> 0) ) CREATE TABLE tempdb."DBO".t435_835E0CB815E343869072DE3F542E1E75 (TAXGROUP NVARCHAR(10) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '' ,TAXITEMGROUP NVARCHAR(10) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '' ,TAXSPECIFYLINE INT NOT NULL DEFAULT 0 ,JOURNALINCLTAX INT NOT NULL DEFAULT 0 ,CALCULATEPRINCIPLE INT NOT NULL DEFAULT 0 ,PURCHTAXONOPERATIONS INT NOT NULL DEFAULT 0 ,KEY_ INT NOT NULL DEFAULT 0 ,CASHDISCONINVOICE INT NOT NULL DEFAULT 0 ,TAXLESSCASHDISC INT NOT NULL DEFAULT 0 , REVERSEONCASHDISC INT NOT NULL DEFAULT 0 ,TAXCALCULATIONDATETYPE INT NOT NULL DEFAULT 0 ,TAXONOVERPAYMENT INT NOT NULL DEFAULT 0 ,REPORTADJUSTMENT INT NOT NULL DEFAULT 0 , CONDITIONALTAX INT NOT NULL DEFAULT 0 ,CHECKINTERSECTION INT NOT NULL DEFAULT 0 ,ALLOWDUPLICATES INT NOT NULL DEFAULT 0 ,VALIDATETAXCODE INT NOT NULL DEFAULT 0 ,TAXREPORT_JP INT NOT NULL DEFAULT 0 ,MANDATORYTAXDIRECTION INT NOT NULL DEFAULT 0 ,CUSTOMS_IN INT NOT NULL DEFAULT 0 ,SERVICETAX_IN INT NOT NULL DEFAULT 0 ,EXCISE_IN INT NOT NULL DEFAULT 0 , SALESTAX_IN INT NOT NULL DEFAULT 0 ,VAT_IN INT NOT NULL DEFAULT 0 ,VENDORCALCULATIONDATETYPE_IN INT NOT NULL DEFAULT 0 ,CUSTOMERCALCULATIONDATETYPE_IN INT NOT NULL DEFAULT 0 , TAXRECOVERABLE_IN INT NOT NULL DEFAULT 0 ,REVERSESETTLEMENTDATEPRINCIPLE_W INT NOT NULL DEFAULT 0 ,EXIMINCENTIVESCHEMES_IN INT NOT NULL DEFAULT 0 ,RESTOREDVATGAINCALCMETHOD_RU INT NOT NULL DEFAULT 0 ,RESTOREDVATCALCMETHOD_RU INT NOT NULL DEFAULT 0 ,PERSONTITLE_CZ NVARCHAR(30) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '' ,TAXREPORTFACTOR_CZ NUMERIC(32,16) NOT NULL DEFAULT 0 ,MAINECONOMICACTIVITYCODE_CZ NVARCHAR(6) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '' ,NATURALPERSONFIRSTNAME_CZ NVARCHAR(20) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '' ,NATURALPERSONLASTNAME_CZ NVARCHAR(36) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '' ,TAXPAYERSTATUS_CZ INT NOT NULL DEFAULT 0 ,TAXPAYERTYPE_CZ INT NOT NULL DEFAULT 0 ,MAINECONOMICACTIVITYCODE_LT NVARCHAR(6) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '' ,DEDUCTIONPERCENT_LT NUMERIC(32,16) NOT NULL DEFAULT 0 ,TAXSPECPOSTING_RU INT NOT NULL DEFAULT 0 ,INCOMINGVATPAYMENT_RU INT NOT NULL DEFAULT 0 ,EXCHRATEDIFFDOCTYPE_RU INT NOT NULL DEFAULT 0 ,BANKEXCHRATE_W INT NOT NULL DEFAULT 0 ,REPORTUSEVATDUEDATE_W INT NOT NULL DEFAULT 0 ,SALESTAXPAYABLEEXCHANGERATETYPE BIGINT NOT NULL DEFAULT 0 ,SALESTAXRECEIVABLEEXCHANGERATETYPE BIGINT NOT NULL DEFAULT 0 ,SERVICETAXACBASIS_IN INT NOT NULL DEFAULT 0 ,TAXBRANCHENABLED INT NOT NULL DEFAULT 0 ,MODIFIEDDATETIME DATETIME NOT NULL DEFAULT dateadd(ms, -datepart(ms,getutcdate()), getutcdate()) ,DEL_MODIFIEDTIME INT NOT NULL DEFAULT 0 ,MODIFIEDBY NVARCHAR(8) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT '?' ,DATAAREAID NVARCHAR(4) COLLATE CYRILLIC_GENERAL_CI_AS NOT NULL DEFAULT 'dat' , RECVERSION INT NOT NULL DEFAULT 1 ,PARTITION BIGINT NOT NULL DEFAULT 5637144576 ,RECID BIGINT IDENTITY NOT NULL CHECK (RECID <> 0) ) EXECUTE (prepare, bind, attributes, etc)
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/ Последний раз редактировалось Ace of Database; 01.06.2017 в 11:03. |
|
01.06.2017, 11:04 | #2 |
Модератор
|
Конфигурационный ключ на таблице - отключен ?
__________________
-ТСЯ или -ТЬСЯ ? |
|
01.06.2017, 11:04 | #3 |
Участник
|
Когда я вызываю джобом TaxParameters::find() - ничего подобного не происходит.
Почему так?
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/ |
|
01.06.2017, 11:06 | #4 |
Участник
|
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/ |
|
01.06.2017, 11:18 | #5 |
Модератор
|
Самое простое - почистить ключ на таблице. Нормально кэширование заработает
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: Ace of Database (5). |
01.06.2017, 11:33 | #6 |
Участник
|
Извините, не совсем понял, что значит "почистить ключ на таблице"?
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/ |
|
01.06.2017, 11:42 | #7 |
Участник
|
До меня дошло: надо очистить свойство ConfigurationKey на таблице.
Спасибо! Посмотрим как пойдет.
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/ Последний раз редактировалось Ace of Database; 01.06.2017 в 11:45. |
|
01.06.2017, 11:46 | #8 |
Участник
|
Перепутал SecurityKey и ConfigurationKey.
Просто одновременно урывками общаюсь с разными людьми в этот момент.
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/ |
|
|
|