|
04.02.2010, 15:58 | #1 |
NavAx
|
Если в запросе у первой таблицы CacheLookup = None, то запрос идет без NOLOCK
Вчера обнаружил интересную фичу для Ax3 (когда MS её уже списал).
Если в запросе у первой таблицы CacheLookup = None, то запрос идет без NOLOCK. Имеем тестовый job. X++: static void TEST_Job1(Args _args) { InventTable InventTable; InventSum InventSum; ; while select InventTable group by ItemId join sum(PostedQty) from InventSum where InventSum.ItemId == InventTable.ItemId { break; } } Запрос: X++: SELECT A.ITEMID,SUM(B.POSTEDQTY) FROM INVENTTABLE A WITH( NOLOCK),INVENTSUM B WITH( NOLOCK) WHERE (A.DATAAREAID=?) AND ((B.DATAAREAID=?) AND (B.ITEMID=A.ITEMID)) GROUP BY A.ITEMID ORDER BY A.ITEMID OPTION(FAST 6) Запрос: X++: SELECT A.ITEMID,SUM(B.POSTEDQTY) FROM INVENTTABLE A,INVENTSUM B WHERE (A.DATAAREAID=?) AND ((B.DATAAREAID=?) AND (B.ITEMID=A.ITEMID)) GROUP BY A.ITEMID ORDER BY A.ITEMID OPTION(FAST 6) |
|
04.02.2010, 16:12 | #2 |
Участник
|
Может это и правильно ?
Она же читает в режиме Read Committed и стремится к тому чтобы обеспечить внутри транзакции повторяемость чтения из базы. |
|