[Video] Assista Brent Write T-SQL


Hoje de manhã, trabalhei em uma nova verificação do sp_BlitzFirst para encontrar estatísticas que foram atualizadas nos últimos 15 minutos, possivelmente causando problemas de cache do plano e detecção de parâmetros. Eu transmiti ao vivo e você pode assistir.

Na parte 1, na primeira hora, escrevo a consulta de prova de conceito:

Na parte 2, na segunda hora, movo a consulta para sp_BlitzFirst, teste, depure e verifique no Github:

E finalmente, na terceira hora, mudo para abrir as perguntas e respostas e faço algumas demos ao vivo: read more

Acesso programático aos comandos do Power BI PowerShell

Power BI File Generated


Neste artigo, vou demonstrar como acessar os comandos do Power BI PowerShell. No anterior
    Neste artigo, discutimos como acessar programaticamente o Serviço do Power BI usando as APIs REST
    acessível. O PowerShell é uma das maneiras preferidas e usadas com mais freqüência de automatizar trabalhos manuais monótonos e
    scripts aqueles. O PowerShell é integrado ao Windows, para que possa ser facilmente usado em qualquer máquina Windows.

Para começar, a documentação oficial da Microsoft é um ótimo lugar para começar a escrever
    Scripts do Power BI PowerShell. Você pode executar muitas tarefas administrativas seguindo a documentação mencionada
    no link acima. read more

Usando o tSQLt para desenvolvimento de data warehouse orientado a testes (TDWD)

Identifying potential objects in test-driven data warehouse development with tSQLt (concept)


Esta é a segunda parte de um artigo conceitual para profissionais e entusiastas de dados interessados ​​em trabalhar em um
    conceito de desenvolvimento de data warehouse orientado a teste usando tSQLt, uma estrutura de teste de unidade SQL reconhecida pela indústria.

Este artigo leva você para a próxima etapa na prova de conceito de desenvolvimento de data warehouse orientada a teste, adicionando mais
    valor ao esforço que investimos quando a iniciativa foi tomada. read more

O paralelismo pode fazer com que as consultas tenham pior desempenho.


O paralelismo pode fazer com que as consultas tenham pior desempenho. 1Enquanto criava consultas de laboratório para o meu novo curso de Fundamentos da detecção de parâmetros – o primeiro ao vivo é na semana que vem, ainda há tempo para entrar -, deparei-me com uma consulta com um comportamento terrivelmente agradável.

Sempre fico arrasado quando construo os laboratórios práticos. Quero tornar os desafios fáceis o suficiente para que você possa realizá-los no espaço de uma hora, mas difíceis o suficiente para que eles … bem, desafio você. read more

A função JSON_QUERY () para extrair objetos de dados JSON

JSON_VALUE function output


Neste artigo, exploraremos as funções JSON_QUERY () no SQL Server para extrair objetos JSON e matriz do diretório
    Dados JSON.

Visão geral do JSON

JSON (JavaScript Object Notation) é um formato acessível para representar dados de maneira estruturada. Isso consiste de
    dados leves para troca de dados. Se você estiver familiarizado com o Amazon Web Service, DynamoDB, MongoDB, Couchbase
    bancos de dados, você deve estar familiarizado com os documentos JSON. Esses bancos de dados NoSQL usam principalmente JSON estruturado
    dados. Torna-se necessário que os administradores de banco de dados SQL também entendam JSON e usem a função SQL Server em
    em conjunto com JSON. read more

Conectando-se ao Apache Hive e Apache Pig usando componentes SSIS Hadoop

Conectando-se ao Apache Hive e Apache Pig usando componentes SSIS Hadoop


Em nossos artigos publicados anteriormente nesta série, falamos sobre muitos componentes do SSIS Hadoop adicionados no SQL Server 2016, como o gerenciador de conexões Hadoop, a tarefa do sistema de arquivos Hadoop, a fonte de arquivos HDFS e o destino do arquivo HDFS.

Neste artigo, falaremos sobre as tarefas Hadoop Hive e Hadoop Pig. Primeiro, daremos uma breve visão geral do Apache Hive e do Apache Pig. Em seguida, ilustraremos os componentes e alternativas relacionados ao SSIS Hadoop. read more

Instrução MySQL Create Table com exemplos

MySQL create table example: Configure new connection


Neste artigo, vou explicar o MySQL CRIAR A TABELA declaração com exemplos. A sintaxe a seguir contém instruções básicas para criar uma tabela no MySQL.

CRIO MESA schemaname.Nome da tabela(

column_1 tipo de dados (comprimento) NÃO NULO | PADRÃO | ÚNICO,

...,

Primário chave,

Estrangeiro chave

) MOTOR=storage_engine;

O comando Criar tabela possui os seguintes aspectos. É descrito nas seções:

Nome da tabela

  • Tipo de dados e atributos da coluna

  • Chave primária e chaves estrangeiras

  • Nome da tabela: tblname

    O nome da tabela deve ser especificado como . para criar uma tabela em um banco de dados específico. Este comando supõe que o nome do banco de dados especificado no comando create table exista. Se você não especificar o nome do banco de dados, ele retornará o seguinte erro. read more

    confiando em comportamento não documentado – SQLBlog

    confiando em comportamento não documentado - SQLBlog


    Publicado originalmente em fevereiro de 2010; atualizado em maio de 2020.

    No meu último post desta série, falei sobre o hábito comum de criar uma coluna IDENTITY em todas as tabelas. Hoje, quero falar sobre um conceito mais amplo: confiar em objetos e comportamentos não documentados (e, portanto, provavelmente indefinidos e certamente longe de garantidos).

    sp_MSforeachdb

    Este procedimento do sistema cria um cursor, percorre todos os seus bancos de dados e executa alguma ação em cada um deles (para obter mais informações, consulte este artigo do Diário do banco de dados). Em um dos meus sistemas (2005 SP3), consegui reproduzir muitas vezes um cenário em que um número aleatório de linhas retornaria do sp_MSforeachdb. Pareceu ocorrer com mais frequência durante os horários de pico, mas mesmo assim isso me assustou. Eu olhei para o que estava fazendo e, não surpreendentemente, é realmente muito simples se você descartar todas as coisas de segurança (você só deve estar executando esse tipo de código para a funcionalidade de administração / manutenção, IMHO). Fiquei surpreso, mesmo em 2008 R2, por ainda ver esse código no procedimento:

    EXEC(N'declare hCForEachDatabase cursor global for select name from master.dbo.sysdatabases ...'

    … o uso de sysdatabases, em oposição aos sys.databases, serve como prova adicional de que não há nenhum investimento na atualização de procedimentos sp_ ​​* para ajustar os novos recursos e exibições de catálogo à medida que o SQL Server amadurece. De qualquer forma, gosto de escrever minhas próprias versões desses procedimentos. Isso me permite evitar um cursor global esquisito que é bastante caro (e contribui para o bug) e me protege contra mudanças no comportamento (ou depreciação que tecnicamente não precisa ser anunciada) e também me permite adicionar flexibilidade ao procedimento, como apenas executar código em um banco de dados com um determinado padrão de nomenclatura ou em um determinado modelo de recuperação e apenas tentar executar em bancos de dados que estão online e não são somente leitura. Este é um exemplo rápido:

    CREATE PROCEDURE dbo.ForEachDB_MyWay @cmd nvarchar(MAX), @name_pattern nvarchar(257) = N'%', @recovery_model nvarchar(60) = NULL AS BEGIN SET NOCOUNT ON;   DECLARE @sql nvarchar(MAX), @db nvarchar(257);   DECLARE @c CURSOR LOCAL FORWARD_ONLY STATIC READ_ONLY FOR SELECT QUOTENAME([name]) FROM sys.databases WHERE (@recovery_model IS NULL OR (recovery_model_desc = @recovery_model)) AND [name] LIKE @name_pattern AND [state] = 0 AND [is_read_only] = 0 ORDER BY [name];   OPEN @c; FETCH NEXT FROM @c INTO @db;   WHILE @@FETCH_STATUS <> -1 BEGIN SET @sql = REPLACE(@cmd, N'?', @db); BEGIN TRY EXEC(@sql); END TRY BEGIN CATCH -- I'll leave more advanced error handling as an exercise: PRINT ERROR_MESSAGE(); END CATCH   FETCH NEXT FROM @c INTO @db; END   CLOSE @c; DEALLOCATE @c; END GO   -- simple example: print names of all DBs in FULL recovery:   EXEC dbo.ForEachDB_MyWay @cmd = N'PRINT N''?'';', @recovery_model = N'FULL'; read more