|
Можно ли выбраться из этого заколдованного круга?
|
|||
---|---|---|---|
#18+
Согласно библии, авторIf GROUP BY is present, the VIEW definition must contain COUNT_BIG(*) and must not contain HAVING. These GROUP BY restrictions are applicable only to the indexed view definition. A query can use an indexed view in its execution plan even if it does not satisfy these GROUP BY restrictions. If the SELECT statement in the view definition specifies a GROUP BY clause, the key of the unique clustered index can reference only columns specified in the GROUP BY clause. If the view definition contains a GROUP BY clause, the key of the unique clustered index can reference only the columns specified in the GROUP BY clause. Поэтому, разумеется, вот это не прокатит: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Но не прокатывает и когда делаешь, как там выше требуется: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Что именно нельзя, из этого сообщения непонятно. Мне нужно поле t и константа l. Индекс я создаю на t, и по нему же group by. Что я упустил? Объясните, пожалуйста! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2021, 00:59 |
|
Можно ли выбраться из этого заколдованного круга?
|
|||
---|---|---|---|
#18+
гомодиализ Согласно библии, авторIf GROUP BY is present, the VIEW definition must contain COUNT_BIG(*) and must not contain HAVING. These GROUP BY restrictions are applicable only to the indexed view definition. A query can use an indexed view in its execution plan even if it does not satisfy these GROUP BY restrictions. If the SELECT statement in the view definition specifies a GROUP BY clause, the key of the unique clustered index can reference only columns specified in the GROUP BY clause. If the view definition contains a GROUP BY clause, the key of the unique clustered index can reference only the columns specified in the GROUP BY clause. Поэтому, разумеется, вот это не прокатит: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Но не прокатывает и когда делаешь, как там выше требуется: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Что именно нельзя, из этого сообщения непонятно. Мне нужно поле t и константа l. Индекс я создаю на t, и по нему же group by. Что я упустил? Объясните, пожалуйста! у вас мешается строковый литерал поскольку он считается выражением. а данное выражение в контексте наличия group by косвенно влияет на результат аггрегата. уберите Код: sql 1.
и тогда индекс построится. вообще у индексированых вьюх слишком дофига ограничений, вы уверены что оно вам надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2021, 02:22 |
|
Можно ли выбраться из этого заколдованного круга?
|
|||
---|---|---|---|
#18+
ну или на крайняк если вам уж совсем нужна строковая константа делайте так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2021, 02:33 |
|
Можно ли выбраться из этого заколдованного круга?
|
|||
---|---|---|---|
#18+
гомодиализ, Можно так Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2021, 10:12 |
|
|
start [/forum/topic.php?fid=46&msg=40070504&tid=1684711]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 182ms |
0 / 0 |