Este documento apresenta os principais recursos novos do Transact-SQL no SQL Server 2005, incluindo novos tipos de dados como XML e varchar(max), novas funcionalidades como DML com cláusula OUTPUT e TOP (%n), e melhorias como exceção handling, common table expressions e novos operadores relacionais como PIVOT e UNPIVOT. O documento fornece exemplos de como utilizar essas novas funcionalidades.
Criação de log de ações através do banco - PostgreSQLMarcos Thomaz
Esta apresentação foi utilizada na palestra ministrada na Conferência Brasileira de PostgreSQL, realizada na cidade de Porto Velho - Rondônia - Brasil, em 2013. Ela apresenta uma forma simples de se manter o log das ações realizadas no banco de dados, mantendo um histórico de modificações.
Esta apresentação foi desenvolvida para um trabalho da faculdade, onde eu explico um pouco sobre SQL, os subconjuntos (DML, DDL, DCL) e os principais comandos de cada subconjunto.
Sql com sql server básico - Bóson treinamentosFábio dos Reis
Apostila básica de SQL com SQL Server: Criação de bancos de Dados, Tabelas, inserção, atualização e exclusão de registros.
Views, Backup, Stored Procedures, etc.
Christian Buckley - 10 Steps Toward Information Governance Nirvana - The Info...ARMA International
Most organizations have some semblance of information governance in place today, but it is often scattered across team and divisional boundaries, with no centralized authority or enforcement. The goal of this session is to provide attendees with a roadmap for decision rights and permissions, and a framework for management of roles and policies around content creation, site provisioning, storage optimization, archiving, retention and deletion.
Criação de log de ações através do banco - PostgreSQLMarcos Thomaz
Esta apresentação foi utilizada na palestra ministrada na Conferência Brasileira de PostgreSQL, realizada na cidade de Porto Velho - Rondônia - Brasil, em 2013. Ela apresenta uma forma simples de se manter o log das ações realizadas no banco de dados, mantendo um histórico de modificações.
Esta apresentação foi desenvolvida para um trabalho da faculdade, onde eu explico um pouco sobre SQL, os subconjuntos (DML, DDL, DCL) e os principais comandos de cada subconjunto.
Sql com sql server básico - Bóson treinamentosFábio dos Reis
Apostila básica de SQL com SQL Server: Criação de bancos de Dados, Tabelas, inserção, atualização e exclusão de registros.
Views, Backup, Stored Procedures, etc.
Christian Buckley - 10 Steps Toward Information Governance Nirvana - The Info...ARMA International
Most organizations have some semblance of information governance in place today, but it is often scattered across team and divisional boundaries, with no centralized authority or enforcement. The goal of this session is to provide attendees with a roadmap for decision rights and permissions, and a framework for management of roles and policies around content creation, site provisioning, storage optimization, archiving, retention and deletion.
Extração de Features Usando Compilação CondicionalCamilo Ribeiro
Monografia apresentada por Camilo Ribeiro como requisito parcial para a obtenção do título de Especialista em Engenharia de Software pela Universidade Federal de Minas Gerais
Apresentação realizada no dia 07/07/2011 no TDC 2011, com o objetivo de mostrar como as pequenas alterações na linguagem implementadas no JDK7, definidas na JSR 334 (Project Coin), podem facilitar a vida do desenvolvedor.
How SQL Server was ported to Linux? The presentation goes through some of the concepts: SQLOS, Drawbridge and Containers. It shows the role of SQLPAL as a platform abstraction layer.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
2. Novos RecursosNovos Recursos
Transact-SQL no SQLTransact-SQL no SQL
Server 2005Server 2005
Ioannis XylarasIoannis Xylaras
Rapid Response EngineerRapid Response Engineer
Microsoft CorporationMicrosoft Corporation
Fabricio CataeFabricio Catae
Rapid Response EngineerRapid Response Engineer
Microsoft CorportationMicrosoft Corportation
3. ObjetivoObjetivo
Esta apresentação proverá uma visãoEsta apresentação proverá uma visão
geral dos principais recursos dageral dos principais recursos da
linguagem Microsoftlinguagem Microsoft ®® SQL ServerSQL Server™™
2005 Transact-SQL, incluindo claros e2005 Transact-SQL, incluindo claros e
consistentes exemplos de cenáriosconsistentes exemplos de cenários
onde as funcionalidades poderão seronde as funcionalidades poderão ser
utilizadas.utilizadas.
4. AgendaAgenda
Novos Data TypesNovos Data Types
DML com OutputDML com Output
TOP (%n)TOP (%n)
Recursos DRIRecursos DRI
Particionamento deParticionamento de
TabelaTabela
Exception HandlingException Handling
Common TableCommon Table
Expression andExpression and
Recursive QueriesRecursive Queries
Except e IntersectExcept e Intersect
Função RankingFunção Ranking
Novas OperaçõesNovas Operações
RelacionaisRelacionais
Melhorias do IndexMelhorias do Index
Snapshot IsolationSnapshot Isolation
LevelLevel
Mudanças noMudanças no
comportamento decomportamento de
recompilaçãorecompilação
XML showplanXML showplan
5. Novos Data TypesNovos Data Types
XMLXML
varchar(max)varchar(max)
nvarchar(max)nvarchar(max)
varbinary(max)varbinary(max)
6. XML Data TypeXML Data Type
Primeira classe data type em T-SQLPrimeira classe data type em T-SQL
Colunas, Variáveis, ParametrosColunas, Variáveis, Parametros
Opcionalmente confinado por um Schema XMLOpcionalmente confinado por um Schema XML
XQuery(W3C Básico)+DMLXQuery(W3C Básico)+DML
Habilidade em referenciar colunas variáveisHabilidade em referenciar colunas variáveis
em XQueryem XQuery
Indices XMLIndices XML
Exemplo:Exemplo:
7. varchar(max)varchar(max)
Modelo de programação unified para tipos deModelo de programação unified para tipos de
dados pequenos e grandesdados pequenos e grandes
ComparisonsComparisons
TriggersTriggers
ConcatenationConcatenation
AggregatesAggregates
ParametersParameters
VariablesVariables
Index Included columnsIndex Included columns
Facilita a transição quando os dados pequenosFacilita a transição quando os dados pequenos
de string/binary passam o limite de 8kde string/binary passam o limite de 8k
Recomendado alternativamente para TEXTORecomendado alternativamente para TEXTO
10. varbinary(max)varbinary(max)
Extensão para varbinaryExtensão para varbinary
maior que 2GBmaior que 2GB
Utiliza MAX size especificadoUtiliza MAX size especificado
Alternativa para IMAGEAlternativa para IMAGE
Não suporta texto pointerNão suporta texto pointer
.WRITE (expression,@Offset,@Length).WRITE (expression,@Offset,@Length)
11. DML com cláusula OUTPUTDML com cláusula OUTPUT
HaHabilidade de retornar linhas como parte debilidade de retornar linhas como parte de
operações DMLoperações DML
Imagens “inseridas” e “eliminadas” disponíveisImagens “inseridas” e “eliminadas” disponíveis
pra capturar valores pre e pós atuliazaçãopra capturar valores pre e pós atuliazação
Linhas retornadas irão para dentro de tabelas /Linhas retornadas irão para dentro de tabelas /
variáveisvariáveis
OUTPUT ... INTO ...OUTPUT ... INTO ...
12. OUTPUTOUTPUT
Como utilizar o recurso OUTPUTComo utilizar o recurso OUTPUT
Declarar as variáveis da tabela avaliadaDeclarar as variáveis da tabela avaliada11
DECLARE @InsertDetails TABLE
(ProductID int,
InsertedBy sysname)
Utilize OUTPUT para retornar detalhes para a
variável
Utilize OUTPUT para retornar detalhes para a
variável22
DECLARE @InsertDetails TABLE
(ProductModelID int,
InsertedBy sysname)
INSERT INTO Production.ProductModel(Name, ModifiedDate)
OUTPUT inserted.ProductModel ID, suser_name()
INTO @InsertDetails
VALUES
('Racing Bike', getdate())
SELECT * FROM @InsertDetails
13. Recurso TOPRecurso TOP
Em Microsoft SQL Server 2000:Em Microsoft SQL Server 2000:
SELECT TOP <const.>SELECT TOP <const.>
Em Microsoft SQL Server 2005:Em Microsoft SQL Server 2005:
SELECT TOPSELECT TOP (<expressão>) PERCENT(<expressão>) PERCENT
Também suportado em INSERT,Também suportado em INSERT,
UPDATE, DELETEUPDATE, DELETE
<expressão> deve ser variável,<expressão> deve ser variável,
subquery(retorna escala numerica), ousubquery(retorna escala numerica), ou
uma constanteuma constante
PERCENT somente para SELECTPERCENT somente para SELECT
14. Mudanças DRIMudanças DRI
Suporte para novas ações SETSuporte para novas ações SET
DEFAULT e SET NULL DeclarativeDEFAULT e SET NULL Declarative
Referential Integrity (DRI)Referential Integrity (DRI)
15. ParticionamentoParticionamento
O que é Tabela Particionada ?O que é Tabela Particionada ?
Dados da tabela distribuídos através deDados da tabela distribuídos através de
múltiplos file groupsmúltiplos file groups
Melhora a performance em sistemasMelhora a performance em sistemas
multiprocessados / multidrivemultiprocessados / multidrive
Fácil Gerenciamento de tabelas grandesFácil Gerenciamento de tabelas grandes
16. ParticionamentoParticionamento
Como particionar a tabela ?Como particionar a tabela ?
Criando uma partition functionCriando uma partition function11
CREATE PARTITION FUNCTION emailPF (nvarchar(30))
AS RANGE RIGHT FOR VALUES ('G', 'N')
Criando um partition schemeCriando um partition scheme22
CREATE PARTITION SCHEME emailPS
AS PARTITION emailPF TO (fg1, fg2, fg3)
Criando uma tabela particionadaCriando uma tabela particionada33
CREATE TABLE Sales.CustomerEmail
(CustID int, email nvarchar(30))
ON EMailPS (email)
17. ParticionamentoParticionamento
BenefíciosBenefícios
AdministraçãoAdministração
Eliminação e Recuperação Rápida de DadosEliminação e Recuperação Rápida de Dados
Backup / Recuperação parcial dos dados históricosBackup / Recuperação parcial dos dados históricos
Administração inteligente do gerenciamento de índicesAdministração inteligente do gerenciamento de índices
Minimiza fragmentação de índices para tabelasMinimiza fragmentação de índices para tabelas
historicamente particionadashistoricamente particionadas
Suporte alternativo para armazenamento de histórico dosSuporte alternativo para armazenamento de histórico dos
dadosdados
Desempenho de queries com tabelas grandesDesempenho de queries com tabelas grandes
Eficiente JoinEficiente Join
Pequena arvore de indice ou scaneamento de tabela (tablePequena arvore de indice ou scaneamento de tabela (table
scan) quando usadas queries com partições simplesscan) quando usadas queries com partições simples
Planos de queries simples comparadas com PartitionPlanos de queries simples comparadas com Partition
ViewsViews
18. Exception HandilingException Handiling
Captura todas as exceções do SQL ServerCaptura todas as exceções do SQL Server
Captura qualquer erro com o ajuste do @@errorCaptura qualquer erro com o ajuste do @@error
Previne terminação de uma batchPrevine terminação de uma batch
Modelo TRY / CATCHModelo TRY / CATCH
O fluxo de controle desloca para CATCH errosO fluxo de controle desloca para CATCH erros
fatais de uma transaçãofatais de uma transação
Nenhuma perda do contexto da transaçãoNenhuma perda do contexto da transação
Registra o estado quando os erros fatais àRegistra o estado quando os erros fatais à
transação ocorremtransação ocorrem
19. Exception HandilingException Handiling
Syntax:Syntax:
As construções de TRY/CATCH podem serAs construções de TRY/CATCH podem ser
alinhadasalinhadas
As exceções são capturadas pelo bloco doAs exceções são capturadas pelo bloco do
CATCH associadas com a construção maisCATCH associadas com a construção mais
próxima de TRY/CATCHpróxima de TRY/CATCH
20. Exception HandilingException Handiling
Detalhes dos erros estão disponíveis aDetalhes dos erros estão disponíveis a
qualquer momento dentro do blocoqualquer momento dentro do bloco
CATCHCATCH
Error_number()Error_number()
Error_message()Error_message()
Error_severity()Error_severity()
Error_state()Error_state()
Error_procedure()Error_procedure()
Error_line()Error_line()
21. O que sãoO que são Common TableCommon Table
Expressions?Expressions?
O resultado pode ser usado em SELECT, INSERT,O resultado pode ser usado em SELECT, INSERT,
UPDATE ou DELETEUPDATE ou DELETE..
Vantagens de expressões comuns da tabela:Vantagens de expressões comuns da tabela:
Queries com tabelas derivadas tornam-se mais legiveisQueries com tabelas derivadas tornam-se mais legiveis
Fornece movimentações para hierarquias recursivasFornece movimentações para hierarquias recursivas
WITH TopSales (SalesPersonID, NumSales) AS
( SELECT SalesPersonID, Count(*)
FROM Sales.SalesOrderHeader GROUP BY SalesPersonId )
SELECT * FROM TopSales
WHERE SalesPersonID IS NOT NULL
ORDER BY NumSales DESC
Um resultado provisório nomeado para
ajustar-se baseado em uma query
SELECT
Um resultado provisório nomeado para
ajustar-se baseado em uma query
SELECT
Common Table
Expression
22. Como usar umaComo usar uma CommonCommon
Table ExpressionTable Expression
Escolha um nome CTE e uma lista de colunaEscolha um nome CTE e uma lista de coluna11
WITH TopSales (SalesPersonID, NumSales) ASWITH TopSales (SalesPersonID, NumSales) AS
(SELECT SalesPersonID, Count(*)
FROM Sales.SalesOrderHeader GROUP BY SalesPersonId)
Cria um CTE SELECT queryCria um CTE SELECT query22
Utilize um CTE em uma queryUtilize um CTE em uma query33
WITH TopSales (SalesPersonID, NumSales) AS
(SELECT SalesPersonID, Count(*)
FROM Sales.SalesOrderHeader GROUP BY SalesPersonId)
SELECT LoginID, NumSales
FROM HumanResources.Employee e INNER JOIN TopSales
ON TopSales.SalesPersonID = e.EmployeeID
ORDER BY NumSales DESC
23. Como executar Queries RecursivasComo executar Queries Recursivas
com Common Table Expressionscom Common Table Expressions
Crie uma query membro inicial (topo da arvore
recursiva)
Crie uma query membro inicial (topo da arvore
recursiva)11
SELECT ManagerID, EmployeeID
FROM HumanResources.Employee
WHERE ManagerID IS NULL
Adicione um operador UNION ALLAdicione um operador UNION ALL22
SELECT ManagerID, EmployeeID
FROM HumanResources.Employee
WHERE ManagerID IS NULL
UNION ALL
Crie um query membro recursiva que faça uma
auto-referencia ao CTE
Crie um query membro recursiva que faça uma
auto-referencia ao CTE
33
SELECT ManagerID, EmployeeID
FROM HumanResources.Employee
WHERE ManagerID IS NULL
UNION ALL
SELECT e.ManagerID, e.EmployeeID
FROM HumanResources.Employee e
INNER JOIN HumanResources.Employee mgr
ON e.ManagerID = mgr.EmployeeID
24. Except e IntersectExcept e Intersect
Ajuste dos operadores que produzem um resultado baseandoAjuste dos operadores que produzem um resultado baseando
no ajuste de duas outras linhasno ajuste de duas outras linhas
EXCEPT retorna o ajuste consistente de todas as linhas queEXCEPT retorna o ajuste consistente de todas as linhas que
são parte do primeiro resultado e não do segundosão parte do primeiro resultado e não do segundo
INTERSEC retorna o ajude de linhas que são parte dos dois.INTERSEC retorna o ajude de linhas que são parte dos dois.
SELECT OrdemdeVendaID, ClienteID, VendedorID FROM
Vendas.CabecalhoOrdemVenda
EXCEPT
SELECT OrdemdeVendaID, ClienteID, VendedorID FROM
OrdemImportada
SELECT OrdemdeVendaID, ClienteID, VendedorID FROM
Vendas.CabecalhoOrdemVenda
INTERSECT
SELECT OrdemdeVendaID, ClienteID, VendedorID FROM
OrdemImportada
25. O que são Ranking Functions?O que são Ranking Functions?
FunçãoFunção DescriçãoDescrição
RANKRANK
Retorna um rank para cada linha dentro deRetorna um rank para cada linha dentro de
uma partição específica no ajuste douma partição específica no ajuste do
resultadoresultado
DENSE_RANKDENSE_RANK
Retorna um rank consecutivo para cadaRetorna um rank consecutivo para cada
linha dentro de uma partição específica nolinha dentro de uma partição específica no
ajuste do resultadoajuste do resultado
ROW_NUMBERROW_NUMBER
Retorna a posição de linha ordinal paraRetorna a posição de linha ordinal para
cada linha dentro de um grupo no ajustecada linha dentro de um grupo no ajuste
do resultadodo resultado
NTILENTILE
Divide as linhas em cada divisória de umDivide as linhas em cada divisória de um
ajuste de resultado em um númeroajuste de resultado em um número
especificado de ranks baseados em umespecificado de ranks baseados em um
valor dado.valor dado.
28. Novos Operadores RelacionaisNovos Operadores Relacionais
PIVOTPIVOT
Transforma o ajuste de linhas paraTransforma o ajuste de linhas para
colunascolunas
Similar ao acesso TRANSFORMSimilar ao acesso TRANSFORM
Util para abrir schemas / cenários OnlineUtil para abrir schemas / cenários Online
Analytical Processing (OLAP)Analytical Processing (OLAP)
UNPIVOTUNPIVOT
Operação reversa do PIVOTOperação reversa do PIVOT
APPLYAPPLY
Perminte avaliar uma função table-valuePerminte avaliar uma função table-value
pra cada linha de outer-tablepra cada linha de outer-table
29. PivotPivot
O que são as operações Pivot e Unpivot ?O que são as operações Pivot e Unpivot ?
CustCust BikeBike ChainChain
MikeMike 88 22
LisaLisa 33 77
PIVOT – converte valores para colunasPIVOT – converte valores para colunas
CustCust ProdProd QtyQty
MikeMike BikeBike 88
MikeMike ChainChain 22
LisaLisa BikeBike 33
LisaLisa ChainChain 77
SELECT * FROM
Sales.Order
PIVOT (SUM(Qty) FOR
Prod IN ([Bike],
[Chain])) PVT
SELECT * FROM
Sales.Order
PIVOT (SUM(Qty) FOR
Prod IN ([Bike],
[Chain])) PVT
SELECT Cust, Prod, Qty
FROM Sales.PivotedOrder
UNPIVOT (Qty FOR Prod
IN ([Bike],[Chain]))
UnPVT
SELECT Cust, Prod, Qty
FROM Sales.PivotedOrder
UNPIVOT (Qty FOR Prod
IN ([Bike],[Chain]))
UnPVT
CustCust BikeBike ChainChain
MikeMike 88 22
LisaLisa 33 77
CustCust ProdProd QtyQty
MikeMike BikeBike 33
MikeMike ChainChain 22
MikeMike BikeBike 55
LisaLisa BikeBike 33
LisaLisa ChainChain 33
LisaLisa ChainChain 44
UNPIVOT – converte colunas para valoresUNPIVOT – converte colunas para valores
30. O que é o operador Apply ?O que é o operador Apply ?
Invoca uma função table-valuedInvoca uma função table-valued
uma vez por linhauma vez por linha
CROSS APPLY – somente linhas comCROSS APPLY – somente linhas com
resultados combinados da função.resultados combinados da função.
OUTER APPLY – todas as linhas, nãoOUTER APPLY – todas as linhas, não
importanto os resultados combinados daimportanto os resultados combinados da
função.função.
CREATE FUNCTION Sales.MostRecentOrders
(@CustID AS int) RETURNS TABLE AS
RETURN
SELECT TOP(3) SalesOrderID, OrderDate
FROM Sales.SalesOrderHeader
WHERE CustomerID = @CustID
ORDER BY OrderDate DESC
CustIDCustID NameName
11 A Bike StoreA Bike Store
22 Progressive SportsProgressive Sports
SalesOrderIDSalesOrderID OrderDateOrderDate
101101 11/200311/2003
205205 12/200312/2003
356356 01/200401/2004
CustomerCustomer SalesSales
OrderIDOrderID
OrderDateOrderDate
A Bike StoreA Bike Store 101101 11/200311/2003
A Bike StoreA Bike Store 205205 12/200312/2003
A Bike StoreA Bike Store 356356 01/200401/2004
SELECT Name AS Customer, MR.*
FROM Sales.Store
CROSS APPLY Sales.MostRecentOrders(CustomerID) AS MR
31. IndicesIndices
MudançasMudanças
ALTER INDEXALTER INDEX
Modifica uma tabela ou view index (relacional ou XML)Modifica uma tabela ou view index (relacional ou XML)
desabilitando, reconstruindo ou reorganizando o índice; oudesabilitando, reconstruindo ou reorganizando o índice; ou
por ajustar opções no índicepor ajustar opções no índice
Opções de ÍndicesOpções de Índices
DISABLEDISABLE
ALLOW_ROW_LOCKSALLOW_ROW_LOCKS
ALLOW_PAGE_LOCKSALLOW_PAGE_LOCKS
MAXDOPMAXDOP
ONLINEONLINE
INDICE com colunas incluídasINDICE com colunas incluídas
Inclui colunas não-chave em índices não clusterizadosInclui colunas não-chave em índices não clusterizados
contorna os limites atuais do índice no tamanho total decontorna os limites atuais do índice no tamanho total de
uma chave do índice e do número de colunas máximasuma chave do índice e do número de colunas máximas
32. IndicesIndices
Operações OnlineOperações Online
Manutenção online dos indicesManutenção online dos indices
CriaçãoCriação
ReconstruçãoReconstrução
Reorganização (incluindo BLOBs)Reorganização (incluindo BLOBs)
ExcluindoExcluindo
Incluindo ou excluindo confinamente (chaveIncluindo ou excluindo confinamente (chave
primária, única)primária, única)
Totalmente paralelaTotalmente paralela
Online / Offline são suportados ambosOnline / Offline são suportados ambos
Os updates funcionam um pouco mais lentosOs updates funcionam um pouco mais lentos
durante uma operação online do índicedurante uma operação online do índice
33. IndicesIndices
Características do Novo IndiceCaracterísticas do Novo Indice
O recurso ALTER INDEX permite:O recurso ALTER INDEX permite:
DesabilitarDesabilitar
ReconstruirReconstruir
ReorganizarReorganizar
Configurar as opçõesConfigurar as opções
ALTER INDEX PK_Customer_CustomerID ON Sales.Customer REBUILD
ALTER INDEX IX_Customer_TerritoryID ON Sales.Customer DISABLE
ALTER INDEX PK_Customer_CustomerID ON Sales.Customer
REORGANIZE
ALTER INDEX PK_Customer_CustomerId ON Sales.Customer SET(...)
35. Snapshot IsolationSnapshot Isolation
Disponibilidade de dados aumentada paraDisponibilidade de dados aumentada para
aplicações lidasaplicações lidas
Permite consistente leitura non-blocking dentroPermite consistente leitura non-blocking dentro
um ambiente de OLTPum ambiente de OLTP
Permite escritas, que podem causar conflitosPermite escritas, que podem causar conflitos
MAS ...MAS ... inclui a deteção imperativa do conflitoinclui a deteção imperativa do conflito
Usado melhor em Leitura - na maior parte aUsado melhor em Leitura - na maior parte a
base de dados com relativamente poucasbase de dados com relativamente poucas
escritasescritas
Fácil migração de outras bases de dadosFácil migração de outras bases de dados
36. Mudanças no comportamentoMudanças no comportamento
do Recompiledo Recompile
SQL Server 2000SQL Server 2000
Compilação e recompilação Módulo-levelCompilação e recompilação Módulo-level
Módulo: sp, triggers, functions, batch, etc.Módulo: sp, triggers, functions, batch, etc.
SQL Server 2005SQL Server 2005
Compilação Batch-level mas recompilaçãoCompilação Batch-level mas recompilação
em statement-levelem statement-level
Recompilação deve ser provocada porRecompilação deve ser provocada por
várias condições: Exemplo:mudança devárias condições: Exemplo:mudança de
estatísticas, mudança de opções SET, etc.estatísticas, mudança de opções SET, etc.
Custo menor de recompilaçãoCusto menor de recompilação
37. Mudanças no comportamentoMudanças no comportamento
do Recompiledo Recompile
Aplicável para todos os motivos deAplicável para todos os motivos de
recompilação.recompilação.
Cenários que mais se beneficiam:Cenários que mais se beneficiam:
Recompilação causada por mudanças deRecompilação causada por mudanças de
estatisticasestatisticas
Batch é grande e somente pequenaBatch é grande e somente pequena
porção necessita de recompilaçãoporção necessita de recompilação
(statement simples em um caso de(statement simples em um caso de
mudanção de estatísticas)mudanção de estatísticas)
Nova tabela é criada dentro da batchNova tabela é criada dentro da batch
38. XML ShowplanXML Showplan
Informação de perfil da saída showplan/statsInformação de perfil da saída showplan/stats
no formato de XMLno formato de XML
Uso XML schema documentado e revisadoUso XML schema documentado e revisado
com mais informações do que SQL 2000 nocom mais informações do que SQL 2000 no
formato texto ou gráficoformato texto ou gráfico
Entrega para cliente como ajuste deEntrega para cliente como ajuste de
resultado single-valueresultado single-value
Pode ser processado de várias maneirasPode ser processado de várias maneiras
Usando tecnologias XML: XQuery(de dentro doUsando tecnologias XML: XQuery(de dentro do
SQL Server), XSLT, XPath, SAX, DOM, ...SQL Server), XSLT, XPath, SAX, DOM, ...
Programaticamente: Microsoft Visual C#,Programaticamente: Microsoft Visual C#,
Microsoft Visual C++, Java, ...Microsoft Visual C++, Java, ...
Visível usando qualquer ferramenta XMLVisível usando qualquer ferramenta XML
40. Para Maiores InformaçõesPara Maiores Informações
Mais sobre Visual Studio 2005
http://lab.msdn.microsoft.com/vs2005
Mais sobre SQL Server 2005
http://msdn.microsoft.com/SQL/2005/default.aspx
XML Develop Center
http://msdn.microsoft.com/xml/default.aspx
Site SQL Skills
http://www.sqlskills.com
Microsoft SQL Server Home
http://www.microsoft.com/sql/default1.mspx
41. Recursos ComunitáriosRecursos Comunitários
Site da Comunidade SQL ServerSite da Comunidade SQL Server
http://www.microsoft.com/http://www.microsoft.com/sql/community/default.mspxsql/community/default.mspx
Lista de newsgroupsLista de newsgroups
http://www.microsoft.com/http://www.microsoft.com/
sql/community/newsgroups/default.mspxsql/community/newsgroups/default.mspx
Localizar Grupo de Usuários LocaisLocalizar Grupo de Usuários Locais
httphttp://www.microsoft.com/communities/://www.microsoft.com/communities/
usergroups/default.mspxusergroups/default.mspx
Atender a chat ou web cast gratuitosAtender a chat ou web cast gratuitos
http://www.microsoft.com/communities/chats/http://www.microsoft.com/communities/chats/default.mspxdefault.mspx
http://www.microsoft.com/http://www.microsoft.com/usa/webcasts/default.aspusa/webcasts/default.asp
42. Sua Avaliação éSua Avaliação é
Importante!Importante!
Por Favor, Não Esqueça dePor Favor, Não Esqueça de
Preencher a Ficha de AvaliaçãoPreencher a Ficha de Avaliação
para esta sessãopara esta sessão