Blog Archives

SQL Server Bug – Connect Item

Olá pessoal,

Recentemente estava realizando algumas verificações para  criação de índices e em um dos meus testes me deparei com um problema aonde o índice que possuí a opção ALLOW_PAGE_LOCKS desabilitada, um index reorganize não é possível de ser feito. Até então tudo bem, pois temos a documentação nesse link que nos mostra exatamente esse detalhe. Porem, existe um problema que para mim é um bug no momento em que o comando “ALTER INDEX ALL ON SomeTable REORGANIZE” é executado. Em um cenário normal o SQL Server deveria nesses casos realizar uma pre-verificação desses requerimentos para se rodar um REORGANIZE em todos os índices, mas o que acontece é que o SQL Server inicia o comando e quando ele chegar no índice com o ALLOW_PAGE_LOCKS = OFF é que acontece acontece o erro e a operação é abortada. Vale lembrar também que todos os outros índices após o erro acontecer não são reorganizados.

Em uma operação de reorganize em um indice grande, esse problema pode se tornar bastante grande. Portanto, peço por gentileza para que votem no Connect Item abaixo.

Allow_Page_locks is OFF for a single index and error in “ALTER INDEX ALL” where a quick verification isn’t done

Hi Everybody,

Recently doing some digging in index tuning and optimization I came across a very interesting details that to me it seems a bug. When you try to run an Index Reorganize in a index with the option ALLOW_PAGE_LOCKS = OFF the reorganize fails. That’s totally acceptable, since it’s very well documented here. However, when you run the following command “ALTER INDEX ALL on  SomeTable REORGANIZE” SQL Server will execute the reorganize until it comes to the index with that option disabled, so, you will waste so much time in a big table and the operation in will be cancelled. The Index transaction for itself it isn’t rolled back, but the index after this one isn’t reorganized. So, I’ve created the following Connect Item and ask you guys to vote it.

Allow_Page_locks is OFF for a single index and error in “ALTER INDEX ALL” where a quick verification isn’t done

Thanks,
Marcos Freccia