Показать сообщение отдельно
Старый 12.04.2007, 13:46   #11  
vesna dba is offline
vesna dba
Участник
 
147 / 16 (1) ++
Регистрация: 16.02.2007
Запрос и его план
SELECT MAX(A.NAMEALIAS),MAX(A.VSN_CUSTTYPE),MAX(A.LINEOFBUSINESSID),A.CUSTACCOUNT,MAX(B
.INVOICINGNAME),B.VSN_BONDCODE,SUM(C.VSN_QTY),SUM(C.LINEAMOUNTMST),SUM(C.TAXAMOU
N
TMST),SUM(C.VSN_QTYPCS),SUM(C.QTY),MAX(D.REFINVENTCLASS),MAX(D.REFINVENTRAITING)
,
MAX(D.REFFUNCTIONALSUBGROUP),MAX(D.REFTRADEMARK),MAX(D.VSN_AGGREGATPACKID),MAX(D
.
VSN_GENERALNAME),MAX(D.NAMEALIAS),MAX(D.ITEMNAME),MAX(D.PACKING_RU),D.ITEMID
FROM SMMBUSRELTABLE A,VSN_CUSTINVOICEJOURCONTR B,CUSTINVOICETRANS C,INVENTTABLE D
WHERE (A.DATAAREAID='VC')
AND (((B.DATAAREAID='DAT')
AND (B.DATAAREAID#2='VC'))
AND ((((((B.INVOICEDATE>={TS '2007-02-01 00:00:00.000'})
AND (B.INVOICEDATE<={TS '2007-02-28 00:00:00.000'}))
AND (B.INVOICETYPE=0))
AND (B.VSN_STORNED=0))
AND
NOT ((B.INVOICEACCOUNT=' КЛ-00235')))
AND (A.CUSTACCOUNT=B.INVOICEACCOUNT)))
AND ((C.DATAAREAID='DAT')
AND ((((B.NUMBERSEQUENCEGROUP=C.NUMBERSEQUENCEGROUP)
AND (B.INVOICEDATE=C.INVOICEDATE))
AND (B.INVOICEID=C.INVOICEID))
AND (B.SALESID=C.SALESID)))
AND ((D.DATAAREAID='VC')
AND (C.ITEMID=D.ITEMID))
GROUP BY A.CUSTACCOUNT,B.VSN_BONDCODE,D.ITEMID
ORDER BY A.CUSTACCOUNT,B.VSN_BONDCODE,D.ITEMID OPTION(FAST 15)
[attachment=605:Plan1_Cu...iceTrans.JPG]

Запрос и его план после изменения индекса INVOICEIDX (сделан кластерным)
[attachment=606:Plan2_Cu...iceTrans.JPG]

Индексы на таблице CUSTINVOICETRANS:
I_064INVOICEIDX
по полям:
- DATAAREAID
- SALESID
- INVOICEDATE
- INVOICEID
- LINENUM
- NUMBERSEQUENCEGROUP
I_064ITEMIDIDX
- DATAAREAID
- ITEMID
- INVOICEDATE
I_064RECID
- DATAAREAID
- RECID
I_064TRANSIDIDX
- DATAAREAID
- INVENTTRANSID
- INVOICEID
- INVOICEDATE
I_064VSN_INVOICEID
- DATAAREAID
- INVOICEID

Индексы кроме I_064VSN_INVOICEID из стандартного функционала.
--
Комментарий программиста относительно отчета, в котором разбираем запрос к базе данных, который вызывает TABLE SCAN:
"Отчет не из стандартного функционала Аксапты.
Создан сотрудниками отдела программирования.
Отчет создан стандартными визуальными средствами разработки с использованием объекта Query.
Запросы формируются на уровне ядра и возможности вмешаться в построение запроса к базе данных у нас нет."
---
Гуру, отзовитесь. Наверняка это касается многих.
Миниатюры
Нажмите на изображение для увеличения
Название: Plan1_CustInvoiceTrans.JPG
Просмотров: 541
Размер:	176.8 Кб
ID:	10128   Нажмите на изображение для увеличения
Название: Plan2_CustInvoiceTrans.JPG
Просмотров: 558
Размер:	160.1 Кб
ID:	10129  

__________________
Axapta 3.0 CIS SP3 CU1
---
Народу собралось - яблоку плюнуть негде!