A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Turma: Manhã / FIR Recife-PE www.micpernambuco.com.br.

Apresentações semelhantes


Apresentação em tema: "SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Turma: Manhã / FIR Recife-PE www.micpernambuco.com.br."— Transcrição da apresentação:

1 SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Turma: Manhã / FIR Recife-PE www.micpernambuco.com.br

2  Existem muita tarefas que devem ser feitas em um banco de dados, com o passar do tempo chegamos a classificá-las e distribuí-las em grupos, mas por onde começar?  Backup  Restore  Concorrência  Profiler  SQL Server Agent  SQL Server Configuration Manager

3  A principal tarefa de um DBA é garantir que os dados não só vão ser inseridos, mas também que estes dados permaneçam existindo  Independente do sistema de contingência o Backup é indispensável  Devemos entender como a empresa trabalha e qual o tamanho do banco de dados para definir a melhor política de backup  Fazer testes periódicos para garantir que o processo de backup não está com problemas

4  Comando de backup:  BACKUP DATABASE { database_name | @database_name_var } TO [,...n ] [ ] [ next-mirror-to ] [ WITH { DIFFERENTIAL | [,...n ] } ] [;]  Facilitando, exemplo:  BACKUP DATABASE ADVENTUREWORKS  TO DISK=“C:\SQL\AW.BAK”  WITH FORMAT, COMPRESSION, STATS=10

5  Backup completo Cria uma cópia de todo o banco de dados.  Backup diferencial Cria uma cópia do que foi modificado em relação ao último backup completo.  Backup do log de transações Cria uma cópia do log de transações do banco, sendo possível, ao DBA, restaurar o banco de dados posteriormente até determinada transação.

6 SundayMondayTuesday SundayMonday Somente Full Full e Log

7  Importante recurso para recuperação da informação em caso de desastre  Apenas retornamos uma database a partir do backup full (completo)  O processo de restore deve ser feito com frequência no ambiente de teste, para se evitar falhas em um possível desastre, checando a consistência do processo  Sempre que um restore é feito, a database fica indisponível para acesso dos usuários

8  Comando de Restore:  RESTORE DATABASE { database_name | @database_name_var } [ FROM [,...n ] ] [ WITH { [ RECOVERY | NORECOVERY | STANDBY = {standby_file_name | @standby_file_name_var } ] |, [,...n ] |, |, |, |, } [,...n ] ] [;] Simplificando:  RESTORE DATABASE ADVENTUREWORKS  FROM DISK=“C:\SQL\AW.BAK”  WITH NORECOVERY

9  A concorrência é muito importante ser observada, quando temos muita concorrência e as aplicações não foram preparadas para isso acabamos com problemas de performance. Como observar?  Observar os metadados do SQL Server, usando:  Stored procedures  Dynamic Management Views  SQL Server Management Studio  Quais nossas principais opções?  sp_who e sp_who2  sys.dm_tran_locks

10

11  Ter o máximo controle sobre abertura e fechamento das transações nas aplicações  Minimizar os erros de codificação  Otimizar ao máximo suas consultas  Em casos extremos podemos acabar com a conexão que está bloqueando as transações:  KILL (ID da conexão)  Exemplo: KILL 53

12

13  O SQL Server Agent tem uma ferramenta que auxilia na execução de processos automatizados  Onde podemos agendar as tarefas para serem executadas. Tarefas agendadas Log das tarefas

14  Iniciando o serviço do SQL Server por meio da ferramenta de configuração de startup  Escolha do usuário que irá executar o serviço

15  Listando os primeiros n valores com TOP n  Usando funções agregadas  Noções básicas sobre a cláusula GROUP BY  Gerando valores agregados em conjuntos de resultados  Usando as cláusulas COMPUTE e COMPUTE BY

16  Lista apenas os n primeiros registros de um conjunto de resultados  Especifica o intervalo de valores na cláusula ORDER BY  Retorna correspondências se WITH TIES for usada USE northwind SELECT TOP 5 orderid, productid, quantity FROM [order details] ORDER BY quantity DESC GO USE northwind SELECT TOP 5 orderid, productid, quantity FROM [order details] ORDER BY quantity DESC GO USE northwind SELECT TOP 5 WITH TIES orderid, productid, quantity FROM [order details] ORDER BY quantity DESC GO USE northwind SELECT TOP 5 WITH TIES orderid, productid, quantity FROM [order details] ORDER BY quantity DESC GO Exemplo 1 Exemplo 2

17 Funções agregadas DescriçãoDescrição AVG Média de valores em uma expressão numérica COUNT Número de valores em uma expressão COUNT (*) Número de registros selecionados MAX Maior valor da expressão MIN Menor valor da expressão SUM Valores totais em uma expressão numérica STDEV Desvio padrão de todos os valores STDEVP Desvio padrão da população VAR Variância estatística de todos os valores VARP Variância estatística de todos os valores da população Variância estatística de todos os valores da população

18  A maioria das funções agregadas ignora valores nulos  A função COUNT (*) conta todos os registros com valores nulos USE northwind SELECT COUNT (*) FROM employees GO USE northwind SELECT COUNT (*) FROM employees GO USE northwind SELECT COUNT(reportsto) FROM employees GO USE northwind SELECT COUNT(reportsto) FROM employees GO Exemplo 1 Exemplo 2

19  Usando a cláusula GROUP BY  Usando a cláusula GROUP BY com a cláusula HAVING

20 USE northwind SELECT productid, orderid,quantity FROM orderhist GO USE northwind SELECT productid, orderid,quantity FROM orderhist GO USE northwind SELECT productid,SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid GO USE northwind SELECT productid,SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid GO productidproductidorderidorderidquantityquantity 1 1 1 1 5 5 1 1 1 1 10 2 2 1 1 2 2 2 2 25 3 3 1 1 15 3 3 2 2 30 productidproductidtotal_quantitytotal_quantity 1 1 15 2 2 35 3 3 45 productidproductidtotal_quantitytotal_quantity 2 2 35 Apenas os registros que satisfazem às condições da cláusula WHERE serão agrupados USE northwind SELECT productid,SUM(quantity) AS total_quantity FROM orderhist WHERE productid = 2 GROUP BY productid GO USE northwind SELECT productid,SUM(quantity) AS total_quantity FROM orderhist WHERE productid = 2 GROUP BY productid GO

21 USE northwind SELECT productid, orderid,quantity FROM orderhist GO USE northwind SELECT productid, orderid,quantity FROM orderhist GO USE northwind SELECT productid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid HAVING SUM(quantity)>=30 GO USE northwind SELECT productid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid HAVING SUM(quantity)>=30 GO productidproductidtotal_quantitytotal_quantity 2 2 35 3 3 45 productidproductidorderidorderidquantityquantity 1 1 1 1 5 5 1 1 1 1 10 2 2 1 1 2 2 2 2 25 3 3 1 1 15 3 3 2 2 30

22  Usando a cláusula GROUP BY com o operador ROLLUP  Usando a cláusula GROUP BY com o operador CUBE  Usando a função GROUPING

23 USE northwind SELECT productid, orderid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid, orderid WITH ROLLUP ORDER BY productid, orderid GO USE northwind SELECT productid, orderid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid, orderid WITH ROLLUP ORDER BY productid, orderid GO Descrição productidproductidorderidorderidtotal_quantitytotal_quantity NULL 95 1 1 NULL 15 1 1 1 1 5 5 1 1 2 2 10 2 2 NULL 35 2 2 1 1 10 2 2 2 2 25 3 3 NULL 45 3 3 1 1 15 3 3 2 2 30 Total geral Resume apenas os registros de productid 1 Valores de detalhe de productid 1, orderid 1 Valores de detalhe de productid 1, orderid 2 Resume apenas os registros de productid 2 Valores de detalhe de productid 2, orderid 1 Resume apenas os registros de productid 3 Valores de detalhe de productid 3, orderid 1 Valores de detalhe de productid 3, orderid 2

24 USE northwind SELECT productid, orderid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid, orderid WITH CUBE ORDER BY productid, orderid GO USE northwind SELECT productid, orderid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid, orderid WITH CUBE ORDER BY productid, orderid GO O operador CUBE produz dois valores de resumo a mais que o operador ROLLUP Descriçãoproductidproductidorderidorderidtotal_quantitytotal_quantity NULL 95 NULL 1 1 30 NULL 2 2 65 1 1 NULL 15 1 1 1 1 5 5 1 1 2 2 10 2 2 NULL 35 2 2 1 1 10 2 2 2 2 25 3 3 NULL 45 3 3 1 1 15 3 3 2 2 30 Total geral Resume todos os registros de orderid 1 Resume todos os registros de orderid 2 Resume apenas os registros de productid 1 Valores de detalhe de productid 1, orderid 1 Valores de detalhe de productid 1, orderid 2 Resume apenas os registros de productid 2 Valores de detalhe de productid 2, orderid 1 Valores de detalhe de productid 2, orderid 2 Resume apenas os registros de productid 3 Valores de detalhe de productid 3, orderid 1 Valores de detalhe de productid 3, orderid 2

25 1 representa os valores de resumo na coluna anterior 0 representa os valores de detalhe na na coluna anterior USE northwind SELECT productid, GROUPING (productid),orderid, GROUPING (orderid),SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid, orderid WITH CUBE ORDER BY productid, orderid GO USE northwind SELECT productid, GROUPING (productid),orderid, GROUPING (orderid),SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid, orderid WITH CUBE ORDER BY productid, orderid GO productid NULL 1 1 1 2 2 2 3 3 3 1 1 1 0 0 0 0 0 0 0 0 0 orderid 1 2 1 2 1 2 1 2 1 0 0 1 0 0 1 0 0 1 0 0 total_quantity 95 30 65 15 5 10 35 10 25 45 15 30

26 COMPUTE BYCOMPUTE USE northwind SELECT productid, orderid, quantity FROM orderhist ORDER BY productid, orderid COMPUTE SUM(quantity) BY productid COMPUTE SUM(quantity) GO USE northwind SELECT productid, orderid, quantity FROM orderhist ORDER BY productid, orderid COMPUTE SUM(quantity) BY productid COMPUTE SUM(quantity) GO USE northwind SELECT productid, orderid,quantity FROM orderhist ORDER BY productid, orderid COMPUTE SUM(quantity) GO USE northwind SELECT productid, orderid,quantity FROM orderhist ORDER BY productid, orderid COMPUTE SUM(quantity) GO productidproductidorderidorderidquantityquantity 1 1 1 1 5 5 1 1 2 2 10 2 2 1 1 2 2 2 2 25 3 3 1 1 15 3 3 2 2 30 sum 95 productidproductidorderidorderidquantityquantity 1 1 1 1 5 5 1 1 2 2 10 sum 15 2 2 1 1 10 2 2 2 2 25 sum 35 3 3 1 1 15 3 3 2 2 30 sum 45 sum 95

27 Use a cláusula COMPUTE ou COMPUTE BY para testar seus aplicativos Indexe colunas freqüentemente agregadas Evite usar funções agregadas com colunas que contêm valores nulos Use a cláusula ORDER BY para garantir a classificação do conjunto de resultados Use o operador ROLLUP sempre que possível

28  Recuperando dados usando a instrução SELECT  Filtrando dados  Formatando conjuntos de resultados  Como as consultas são processadas  Como as consultas são colocadas em cache automaticamente  Considerações sobre o desempenho

29  Usando a instrução SELECT  Especificando colunas  Usando a cláusula WHERE para especificar registros

30 SELECT [ALL | DISTINCT] FROM { } [,…n] WHERE Sintaxe parcial  A lista de seleção especifica as colunas  A cláusula WHERE especifica a condição que restringe a consulta  A cláusula FROM especifica a tabela

31 employeeidemployeeidlastnamelastnamefirstnamefirstnametitletitle 1 1 Davolio Nancy Sales Representative 2 2 Fuller Andrew Vice President, Sales 3 3 Leverling Janet Sales Representative 4 4 Peacock Margaret Sales Representative 5 5 Buchanan Steven Sales Manager 6 6 Suyama Michael Sales Representative 7 7 King Robert Sales Representative 8 8 Callahan Laura Inside Sales Coordinator 9 9 Dodsworth Anne Sales Representative USE northwind SELECT employeeid, lastname, firstname, title FROM employees GO USE northwind SELECT employeeid, lastname, firstname, title FROM employees GO

32 employeeidemployeeidlastnamelastnamefirstnamefirstnametitletitle 5 5 Buchanan Steven Sales Manager USE northwind SELECT employeeid, lastname, firstname, title FROM employees WHERE employeeid = 5 GO USE northwind SELECT employeeid, lastname, firstname, title FROM employees WHERE employeeid = 5 GO

33  Usando operadores de comparação  Usando comparações de seqüências  Usando operadores lógicos  Recuperando um intervalo de valores  Usando uma lista de valores como critérios de pesquisa  Recuperando valores desconhecidos

34 USE northwind SELECT lastname, city FROM employees WHERE country = 'USA‘ GO USE northwind SELECT lastname, city FROM employees WHERE country = 'USA‘ GOlastnamelastnamecitycity Davolio Seattle Fuller Tacoma Leverling Kirkland Peacock Redmond Callahan Seattle Exemplo 1

35 USE northwind SELECT companyname FROM customers WHERE companyname LIKE '%Restaurant%‘ GO USE northwind SELECT companyname FROM customers WHERE companyname LIKE '%Restaurant%‘ GOcompanynamecompanyname GROSELLA-Restaurante Lonesome Pine Restaurant Tortuga Restaurante

36 USE northwind SELECT productid, productname, supplierid, unitprice FROM products WHERE (productname LIKE 'T%' OR productid = 46) AND (unitprice > 16.00) GO USE northwind SELECT productid, productname, supplierid, unitprice FROM products WHERE (productname LIKE 'T%' OR productid = 46) AND (unitprice > 16.00) GOproductidproductidproductnameproductnamesupplieridsupplieridunitpriceunitprice 14 Tofu 6 6 23.25 29 Thüringer Rostbratwurst 12 123.79 62 Tarte au sucre 29 49.3 Exemplo 1

37 USE northwind SELECT productname, unitprice FROM products WHERE unitprice BETWEEN 10 AND 20 GO USE northwind SELECT productname, unitprice FROM products WHERE unitprice BETWEEN 10 AND 20 GOproductnameproductnameunitpriceunitprice Chai 18 Chang 19 Aniseed Syrup 10 Genen Shouyu 15.5 Pavlova 17.45 Sir Rodney’s Scones 10 … … … … Exemplo 1

38 USE northwind SELECT companyname, country FROM suppliers WHERE country IN ('Japan', 'Italy') GO USE northwind SELECT companyname, country FROM suppliers WHERE country IN ('Japan', 'Italy') GOcompanynamecompanynamecountrycountry Tokyo Traders Japan Mayumi’s Japan Formaggi Fortini s.r.l. Italy Pasta Buttini s.r.l. Italy Exemplo 1

39 USE northwind SELECT companyname, fax FROM suppliers WHERE fax IS NULL GO USE northwind SELECT companyname, fax FROM suppliers WHERE fax IS NULL GOcompanynamecompanynamefaxfax Exotic Liquids NULL New Orleans Cajun Delights NULL Tokyo Traders NULL Cooperativa de Quesos ‘Las Cabras’ NULL … … … …

40  Classificando dados  Ocultando registros duplicados  Alterando nomes de colunas  Usando literais

41 USE northwind SELECT productid, productname, categoryid, unitprice FROM products ORDER BY categoryid, unitprice DESC GO USE northwind SELECT productid, productname, categoryid, unitprice FROM products ORDER BY categoryid, unitprice DESC GOproductidproductidproductnameproductnamecategoryidcategoryidunitpriceunitprice 38 Cote de Blaye 1 1 263.5000 43 Ipoh Coffee 1 1 46.0000 2 2 Chang 1 1 19.0000 … … … … … … … … 63 Vegie-spread 2 2 43.9000 8 8 Northwoods Cranberry Sauce 2 2 40.0000 61 Sirop d'érable 2 2 28.5000 … … … … … … … … Exemplo 1

42 USE northwind SELECT DISTINCT country FROM suppliers ORDER BY country GO USE northwind SELECT DISTINCT country FROM suppliers ORDER BY country GOcountrycountry Australia Brazil Canada Denmark Finland France Germany Italy Japan Netherlands Norway Singapore Spain Sweden UK USA Exemplo 1

43 USE northwind SELECT firstname AS First, lastname AS Last,employeeid AS 'Employee ID:' FROM employees GO USE northwind SELECT firstname AS First, lastname AS Last,employeeid AS 'Employee ID:' FROM employees GOFirstFirstLastLast Employee ID: Nancy Davolio 1 1 Andrew Fuller 2 2 Janet Leverling 3 3 Margaret Peacock 4 4 Steven Buchanan 5 5 Michael Suyama 6 6 Robert King 7 7 Laura Callahan 8 8 Anne Dodsworth 9 9

44 USE northwind SELECT firstname, lastname, 'Identification number:', employeeid FROM employees GO USE northwind SELECT firstname, lastname, 'Identification number:', employeeid FROM employees GOfirstnamefirstnamelastnamelastnameemployeeidemployeeid Nancy Davolio Identification Number: 1 Andrew Fuller Janet Leverling Margaret Peacock Steven Buchanan Michael Suyama Robert King Laura Callahan Anne Dodsworth Identification Number: 2 Identification Number: 3 Identification Number: 4 Identification Number: 5 Identification Number: 6 Identification Number: 7 Identification Number: 8 Identification Number: 9

45


Carregar ppt "SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Turma: Manhã / FIR Recife-PE www.micpernambuco.com.br."

Apresentações semelhantes


Anúncios Google