Melhorando o desempenho do parceiro com Black Belt

Melhorando o desempenho do parceiro com Black Belt


Quando você trabalha com a Cisco, há muito a aprender. Sobre os desafios complexos dos clientes, como nossos produtos os resolvem e como você pode se destacar da concorrência. É por isso que na Cisco estamos sempre procurando maneiras de facilitar o aprendizado e a venda de soluções da Cisco.

Por isso, reunimos uma nova equipe de Performance de parceiros para ajudar você a fazer exatamente isso. Nosso objetivo? Simplifique e aprimore sua experiência como parceiro da Cisco. Por exemplo, estaremos repensando a maneira como trabalhamos, procurando lugares para cortar em idas e vindas. Tudo para ajudá-lo a manter o foco no que mais importa: gerar novos negócios e obter resultados previsíveis. read more

Principais tendências de transformação digital na empresa

Principais tendências de transformação digital na empresa


Principais tendências de transformação digital na empresa 1

Foto de Amanda Dalbjörn no Unsplash

A Frost & Sullivan lançou sua análise mais recente, “Principais prioridades do usuário final em transformação digital, global, 2019”.

Os principais resultados incluem:

  • Os setores de varejo (44%) e transporte (43%) estão à frente dos demais em sua transformação digital.
  • Mais de dois terços das empresas acham que o departamento de vendas e marketing será o departamento mais impactado por sua transformação digital.
  • Aprimorar a experiência do cliente, a presença digital e a eficácia de vendas e marketing são os três principais fatores para o investimento em TI / telecomunicações nos próximos dois anos.
  • Melhorar a eficiência operacional é uma das principais prioridades na Ásia-Pacífico e na América Latina, enquanto atualizar a experiência e a satisfação do cliente é o objetivo corporativo mais importante da América do Norte e Europa para 2020.
  • O malware (41% das empresas) continua sendo a maior ameaça à segurança, seguido por erros de configuração e hackers. O malware é comum nas plataformas de smartphone e desktop.
  • A Internet das Coisas está sendo usada por 65% das empresas. Quase 42% das organizações estão desenvolvendo a Internet das coisas através de um provedor de serviços de terceiros. O governo é o desenvolvedor predominante da Internet das Coisas internamente.
  • TI e comunicações, finanças, bancos e seguros são os principais setores que implementam inteligência artificial.
  • O custo da integração continua sendo um grande revés para a adoção de novas tecnologias digitais.

Minha amiga Macy Bayern da TechRepublic estendeu a mão para falar sobre as tendências de transformação digital de uma história que estava escrevendo para a TechRepublic. E, como sempre, isso levou a uma conversa fantástica. Partes de nossa discussão foram incluídas em seu artigo, “Principais prioridades da transformação digital na empresa”. read more

Um guia de impostos para o seu negócio paralelo

A Guide to Side Business Taxes


A economia do show transformou os negócios paralelos em uma norma. Seja Uber ou Fiverr, as profissões em praticamente todos os setores estão agora ganhando dinheiro como um negócio paralelo. Encanadores e eletricistas estão trabalhando no TaskRabbit, assim como os proprietários que alugam suas propriedades no Airbnb.

Parece não haver fim no que o negócio paralelo se tornou. E isso introduziu um novo conjunto de questões para esses trabalhadores, porque o IRS está olhando para cobrar impostos sobre esses ganhos. read more

Como empreendedores inteligentes transformaram três colchões de ar no Airbnb, o site que faz de qualquer casa uma pousada – com Brian e Joe

Como empreendedores inteligentes transformaram três colchões de ar no Airbnb, o site que faz de qualquer casa uma pousada - com Brian e Joe


Introdução ao entrevistador: Antes de começarmos, preciso lhe dizer que a entrevista que você está prestes a assistir era um urso para editar. Você vai ter um pouco de soluços ao longo da entrevista. Mas eu lhe digo uma coisa; o conteúdo aqui era tão bom que eu não queria deixar esses caras fora do telefone. Ficamos mais tempo fora do telefone pelo Skype. Demoramos mais do que normalmente porque a qualidade era muito boa (a qualidade da informação, não a qualidade da conexão). De fato, preste atenção à história em série que eles contam em cerca de 40% da entrevista. Vocês vão adorar isso. Devo dizer que a edição e grande parte do trabalho aqui é patrocinada, paga e apoiada por essas três grandes empresas: A primeira é o Grasshopper, o sistema de telefonia virtual que os empreendedores adoram. Porque com o Grasshopper, você obtém as extensões e tudo o que deseja com um sistema telefônico robusto. Você pode gerenciá-lo online e usar um telefone comum com este sistema. Então confira Grasshopper.com. read more

Tenha cuidado com sys.dm_db_database_page_allocations no SQL Server

Tenha cuidado com sys.dm_db_database_page_allocations no SQL Server


Por: Aaron Bertrand | Atualizado: 2020-02-04 | Comentários Relacionado: Mais> Exibições e funções de gerenciamento dinâmico
Problema

Em uma dica anterior, falei sobre uma nova função no SQL Server 2019,

sys.dm_db_page_info. Nessa dica, eu também falei sobre outra (embora não documentada)
função, sys.dm_db_database_page_allocations. Depois de algum comportamento interessante com
Na última função, pensei em dar um pequeno aviso sobre seu uso em
sistemas maiores.

Solução

Eu tenho um banco de dados descartável em nosso ambiente de desenvolvimento ("OCopy")
que eu tenho usado para uma variedade de testes e demos. Um aspecto interessante de
esse banco de dados tem uma tabela com mais de 1 TB de tamanho, e isso é divertido,
porque tende a aparecer questões relacionadas à escala que eu talvez não veja de outra maneira.

Como parte de um dos meus testes recentes, eu queria contar as 8k páginas de dados nesse
tabela grande antes e depois de certas operações, como aplicar a compactação de página
ou reconstruindo índices.

Testei essa sequência em tabelas menores primeiro, para garantir que minha sintaxe estivesse correta,
antes de soltá-lo no mamute. Embora excessivamente simplificado, fiz algo como
esta:

CREATE TABLE dbo.smalltable(id int, CONSTRAINT pk_st PRIMARY KEY(id));

INSERT dbo.smalltable(id) SELECT object_id FROM sys.all_objects; -- 2,334 rows

SELECT COUNT(*) FROM sys.dm_db_database_page_allocations
    (DB_ID(), OBJECT_ID(N'dbo.smalltable'),1,1,'limited');

ALTER TABLE dbo.smalltable REBUILD WITH (ONLINE = ON, DATA_COMPRESSION = PAGE);

SELECT COUNT(*) FROM sys.dm_db_database_page_allocations
    (DB_ID(), OBJECT_ID(N'dbo.smallatble'),1,1,'limited');

Isso levou cerca de 30 minutos. Leitores astutos – ou aqueles que experimentam o código
acima antes de ler – notará o erro de digitação em um dos meus argumentos:
smallatble. A função é bastante perdoadora; assume que quando
você passa NULL para o objeto, quer pretenda ou não, deseja a soma de
alocações de página para todo o banco de dados. Mas o que eu esperava era apenas um maior
número na segunda saída; Eu não esperava contar ~ 134 milhões de linhas deste
função de gerenciamento dinâmico que leva 30 minutos.

Executei novamente, desta vez capturando um plano de execução e monitorando as esperas. o
as esperas eram relativamente desinteressantes; os relevantes foram os seguintes e a maioria
eram estáveis, exceto para PAGEIOLATCH_SH:

Isso parece razoável, já que a função precisa ler todas as páginas, mesmo
no modo limitado. Observando sys.dm_os_buffer_descriptors, você pode ver mais e
mais páginas puxadas para o buffer pool. Mas os números não fazem sentido
mim. Em um momento em que há ~ 90.000 páginas no buffer pool, a sessão já havia
realizou 4.542.291.613 leituras lógicas. Sim, você leu certo: quatro anos e meio
bilhão leituras lógicas, o que me parece bastante desproporcional.

O plano não forneceu muitas informações úteis:

Exceto que, se você alternar para os custos estimados e exibir apenas para E / S, podemos
veja a estimativa fantasticamente baixa e também onde o SQL Server pensamento
executaria todo o trabalho de E / S:

Então, montei alguns testes para ver o que acontece em outros casos. Eu tive outra
bancos de dados descartáveis ​​nessa instância, de tamanhos variados:

Então eu configurei um script que simplesmente cronometraria Primeiro, uma tabela de log em um arquivo separado
base de dados (Utility):

CREATE TABLE dbo.Logging
(
  db             nvarchar(128),
  dbsize         decimal(12,2),
  page_count     bigint,
  logical_reads  bigint,
  buffer_pages   bigint,
  ts             datetime2,
  description    varchar(255)
); read more

3 maneiras de causar impacto como estagiário da Cisco

3 maneiras de causar impacto como estagiário da Cisco


Este post foi escrito pelo estagiário da Cisco Charlie Helms Jr. Charlie sorri na frente de uma placa anunciando um Cisco Hackathon.

O que eu mais amo em trabalhar na Cisco é o sentimento de que realmente importa. Ser um estudante afro-americano em ciência da computação tem muitos desafios, e um deles é ter longevidade em seu campo quando você não vê muitas pessoas que se parecem com você lá. Como resultado desse problema, sofri da síndrome do impostor e sempre duvidei da minha capacidade de me sair bem em um papel técnico. Mas a Cisco se dedica à diversidade e garante que todos tenhamos voz no maravilhoso mundo da tecnologia e que faça do mundo um lugar melhor. read more

accessiBe. Definir e esquecer o software de conformidade com a Web ADA da AI

accessiBe. Set and Forget AI Powered ADA Web Compliance Software


Você deve garantir que seu site seja acessível a pessoas portadoras de deficiência. Acontece que isso é mais do que uma responsabilidade social nos dias de hoje. Ignore esses requisitos e enfrente uma possível ação judicial ou, pelo menos, receba uma carta de demanda. E não se esqueça da possível perda de negócios.

Digite accessiBe. Este software usa uma linha de código e IA para manter seu site compatível. Leva apenas 48 horas para atualizar tudo. read more

Dentro do Google, do estágio de inicialização ao IPO

Dentro do Google, do estágio de inicialização ao IPO


Dentro do Google, do estágio de inicialização ao IPO 2

O convidado de hoje foi um dos primeiros 500 contratados no Google. Ela ficou no Google por 10 anos – até o IPO. Mas enquanto ela estava lá, ela teve um problema ao vender seu carro.

Então ela e seu cofundador desenvolveram uma empresa para facilitar esse processo.

Minnie Ingersoll é co-fundadora da Shift Technologies, uma plataforma que torna a compra e venda de carros divertida, justa e acessível a todos.


Ouça no Google Podcasts

Ouça no Apple Podcasts

O podcast está em todos os principais aplicativos, basta procurar o Mixergy.
Você também pode usar nosso Feed RSS Feed RSS. read more

Diversão com a compactação (columnstore) em uma tabela muito grande – parte 3

Diversão com a compactação (columnstore) em uma tabela muito grande - parte 3


Na parte 1 desta série, tentei algumas maneiras de compactar uma tabela de 1 TB. Enquanto obtive resultados decentes na minha primeira tentativa, eu queria ver se poderia melhorar o desempenho na parte 2. Lá, descrevi algumas das coisas que pensei que poderiam ser problemas de desempenho e expus como particionaria melhor a tabela de destino. para uma compressão ideal do columnstore. Eu já:

  • particionou a tabela em 8 partições (uma por núcleo);
  • coloque o arquivo de dados de cada partição em seu próprio grupo de arquivos; e,
  • defina a compactação do arquivo morto, exceto na partição “ativa”.

Eu ainda preciso fazer isso para que cada agendador grave exclusivamente em sua própria partição.

Primeiro, preciso fazer alterações na tabela de lotes que criei. Preciso de uma coluna para armazenar o número de linhas adicionadas por lote (como uma verificação de auto-auditoria) e os horários de início / término para medir o progresso.

ALTER TABLE dbo.BatchQueue ADD 
  RowsAdded int,
  StartTime datetime2, 
  EndTime   datetime2;

Em seguida, preciso criar uma tabela para fornecer afinidade – nunca queremos mais de um processo em execução em qualquer agendador, mesmo que isso signifique perder tempo para tentar novamente a lógica. Portanto, precisamos de uma tabela que monitore qualquer sessão em um agendador específico e evite o empilhamento:

CREATE TABLE dbo.OpAffinity
(
  SchedulerID int NOT NULL,
  SessionID   int NULL,
  CONSTRAINT  PK_OpAffinity PRIMARY KEY CLUSTERED (SchedulerID)
);

A idéia é que eu teria oito instâncias de um aplicativo (SQLQueryStress) que executariam em um agendador dedicado, manipulando apenas os dados destinados a uma partição / grupo de arquivos / arquivo de dados específicos, ~ 100 milhões de linhas por vez (clique para ampliar) :

Diversão com a compactação (columnstore) em uma tabela muito grande - parte 3 3 O aplicativo 1 obtém o agendador 0 e grava na partição 1 no grupo de arquivos 1, etc.

Em seguida, precisamos de um procedimento armazenado que permita que cada instância do aplicativo reserve tempo em um único planejador. Como mencionei em um post anterior, essa não é minha ideia original (e eu nunca a encontraria nesse guia se não fosse Joe Obbish). Aqui está o procedimento que eu criei no Utility:

CREATE PROCEDURE dbo.DoMyBatch @PartitionID int, -- pass in 1 through 8 @BatchID int -- pass in 1 through 4 AS BEGIN DECLARE @BatchSize bigint, @MinID bigint, @MaxID bigint, @rc bigint, @ThisSchedulerID int = ( SELECT scheduler_id FROM sys.dm_exec_requests WHERE session_id = @@SPID );   -- try to get the requested scheduler, 0-based IF @ThisSchedulerID <> @PartitionID - 1 BEGIN -- surface the scheduler we got to the application, but force a delay RAISERROR('Got wrong scheduler %d.', 11, 1, @ThisSchedulerID); WAITFOR DELAY '00:00:05'; RETURN -3; END ELSE BEGIN -- we are on our scheduler, now serializibly make sure we're exclusive INSERT Utility.dbo.OpAffinity(SchedulerID, SessionID) SELECT @ThisSchedulerID, @@SPID WHERE NOT EXISTS ( SELECT 1 FROM Utility.dbo.OpAffinity WITH (TABLOCKX) WHERE SchedulerID = @ThisSchedulerID );   -- if someone is already using this scheduler, raise roar: IF @@ROWCOUNT <> 1 BEGIN RAISERROR('Wrong scheduler %d, try again.',11,1,@ThisSchedulerID) WITH NOWAIT; RETURN @ThisSchedulerID; END   -- checkpoint twice to clear log EXEC OCopy.sys.sp_executesql N'CHECKPOINT; CHECKPOINT;';   -- get our range of rows for the current batch SELECT @MinID = MinID, @MaxID = MaxID FROM Utility.dbo.BatchQueue WHERE PartitionID = @PartitionID AND BatchID = @BatchID AND StartTime IS NULL;   -- if we couldn't get a row here, must already be done: IF @@ROWCOUNT <> 1 BEGIN RAISERROR('Already done.', 11, 1) WITH NOWAIT; RETURN -1; END   -- update the BatchQueue table to indicate we've started: UPDATE msdb.dbo.BatchQueue SET StartTime = sysdatetime(), EndTime = NULL WHERE PartitionID = @PartitionID AND BatchID = @BatchID;   -- do the work - copy from Original to Partitioned INSERT OCopy.dbo.tblPartitionedCCI SELECT * FROM OCopy.dbo.tblOriginal AS o WHERE o.CostID >= @MinID AND o.CostID <= @MaxID OPTION (MAXDOP 1); -- don't want parallelism here!   /* You might think, don't I want a TABLOCK hint on the insert, to benefit from minimal logging? I thought so too, but while this leads to a BULK UPDATE lock on rowstore tables, it is a TABLOCKX with columnstore. This isn't going to work well if we want to have multiple processes inserting into separate partitions simultaneously. We need a PARTITIONLOCK hint! */   SET @rc = @@ROWCOUNT;   -- update BatchQueue that we've finished and how many rows: UPDATE Utility.dbo.BatchQueue SET EndTime = sysdatetime(), RowsAdded = @rc WHERE PartitionID = @PartitionID AND BatchID = @BatchID;   -- remove our lock to this scheduler: DELETE Utility.dbo.OpAffinity WHERE SchedulerID = @ThisSchedulerID AND SessionID = @@SPID; END END read more