AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-29737

Alocyte's questions

Martin Hope
Alocyte
Asked: 2022-04-27 08:08:57 +0800 CST

Infraestrutura do Azure (otimização de custos) e taxa de transferência de disco ideal: tamanho/velocidade/custo/otimização do armazenamento do Azure

  • 1

com referência a: Discos Gerenciados do Azure

SQL Server 2019; Windows 2016

C: OS mapeia para 128 GB (S10 @ 60mb/s).

Até agora tudo bem. Tenho drives para Data, Index, TempDB, Log e Backups Locais.

Dados, índice, padrão de disco TempDB: leitura/gravação; Backups de log e locais: (principalmente) gravações sequenciais.

Agora aqui fica duvidoso:

Prefiro ter vários discos do Azure (por exemplo, 1 x P10 @ 100 mb/s [128 GB], 3 x P20 @ 150 mb/s [512 GB])

OU eu vou maior (com maior taxa de transferência) e armazeno tudo no mesmo disco (por exemplo, P40 @250mb/s [2 TB])?

Isso permite que o SO seja apresentado com uma unidade de dados de 512 GB e uma unidade de índice de 512 GB e uma unidade TempDB de 128 GB. Log SQL e Backup de 512 GB.

Esta pergunta fala sobre o SQL Server acessando arquivos de banco de dados através do sistema operacional e a infraestrutura virtual expondo discos virtuais ...

Existe uma capacidade de 250 mb/s para cada encadeamento direcionado ao disco P40? Se eu tiver esse arquivo VHD de 2 TB alocado como 4 discos lógicos no sistema operacional da VM... ele teria mais desempenho do que 3 discos de camada inferior alocados como unidades individuais?

azure-vm azure-disk-throughput
  • 1 respostas
  • 51 Views
Martin Hope
Alocyte
Asked: 2019-09-20 02:25:11 +0800 CST

A tarefa SQL Job PowerShell falha mesmo comando é bem-sucedido como usuário

  • 0

Requisito simples: exclua arquivos no caminho remoto com mais de 20 dias.

PS C:\Users\Administrator> Get-ChildItem `
    -Path \\FileServer\SQLBackups\SQLServer\ `
    -File -Recurse -Force | 
  Where-Object {
    ($_.LastWriteTime -lt (Get-Date).AddDays(-20))
} | Remove-Item

O comando acima é bem-sucedido (backticks de vaidade e quebras de linha adicionados para legibilidade).

O trabalho relevante do SQL 2016 (backticks e quebras de linha não adicionados, mas o texto do comando é o mesmo)

@subsystem=N'PowerShell',
@command=N'Get-ChildItem -Path \\FileServer\SQLBackups\SQLServer\ -File -Recurse -Force | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-20))}|Remove-Item', 
@proxy_name=N'XPProxy'

As informações de erro retornadas pelo PowerShell são:

'Não foi encontrado um parâmetro que corresponda ao nome do parâmetro 'Arquivo'.

Sem problemas de permissões (consulte proxy_name); Versão do SQL Powershell:

Major  Minor  Build  Revision

-----  -----  -----  --------
4      0      -1     -1      

SQL @@VERSION:

Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64) 28 de outubro de 2016 18:17:30 Copyright (c) Microsoft Corporation Standard Edition (64 bits) no Windows Server 2012 R2 Standard 6.3 (Build 9600: ) (Hipervisor)

Abaixo está a lista de parâmetros real da Get-ChildItemfunção . Por que o SQL não pode usar o -Fileparâmetro?

Get-ChildItem 
   [[-Path] <String[]>] 
   [[-Filter] <String>] 
   [-Attributes {ReadOnly | Hidden | System | Directory | Archive | Device | Normal | Temporary | SparseFile | ReparsePoint | Compressed | Offline | NotContentIndexed | Encrypted | IntegrityStream | NoScrubData}] 
   [-Depth <UInt32>] 
   [-Directory] 
   [-Exclude <String[]>] 
   [-File] 
   [-Force] 
   [-Hidden] 
   [-Include <String[]>] 
   [-Name] 
   [-ReadOnly] 
   [-Recurse] 
   [-System] 
   [-UseTransaction] 
   [<CommonParameters>]
sql-server-agent powershell
  • 1 respostas
  • 521 Views
Martin Hope
Alocyte
Asked: 2018-05-22 06:02:36 +0800 CST

Impacto no desempenho de IO do banco de dados SQL SERVER ao dividir tabelas de banco de dados em grupos de arquivos e vários arquivos por grupo de arquivos

  • 2

Desempenho de wrt de ambiguidade SAN LUN

O MSDN diz para dividir as operações de leitura/gravação em uma unidade, gravações sequenciais em outra unidade. (O grupo de arquivos PRIMARY normalmente usa dados com atividade de leitura, atualização e gravação, enquanto o grupo de arquivos LOG é principalmente de gravação sequencial) A documentação é anterior às redes de área de armazenamento.

Eu recebo que o armazenamento de agrupamento para atividade de leitura/gravação otimizaria as cabeças no disco - minimizaria o thrashing do disco, tipo de coisa ... muitos discos?

O "gargalo" de E/S é então o controlador de E/S na SAN e controla o fluxo de dados dos dados em grupos de discos distribuídos? Ou seja, LUN1 exposto ao SO Server1 como 2 unidades de 500 GB, cada uma dividida em 2 unidades lógicas D:, E:; F:,G: de 250 GB cada: Um banco de dados com uma tabela de 750 GB criada em um grupo de arquivos de 4 arquivos (D:\f1.mdf, E:\f2.ndf, F:\f3.ndf, G:\f4.ndf ) terá paralelismo em todas as unidades lógicas (driver de arquivo do SO otimizado?) e o SQL pode usar mais threads de manipulador de arquivos? mas todo o IO ainda passa pelo controlador LUN com um máximo de 1 GB/s.

Ou a separação do DISK está implícita em divisões de nível de LUN? Significando LUN1 250GB, LUN2 250GB, LUN3 250, LUN4 250... cada um exposto ao SO como uma unidade física separada, mapeado para uma unidade lógica cada, e a MESMA divisão do GRUPO DE ARQUIVOS SOMENTE perceberia o benefício da taxa de transferência otimizada de IO? Acho que minha pergunta depende se o controlador de armazenamento SAN pode sustentar uma taxa de transferência de 1 GB/s em cada LUN.

Ou significa um controlador de armazenamento para cada LUN?

Alguém mais experiente pode aconselhar se a pegadinha de alinhar o striping ao tamanho do bloco NTFS é participante desta discussão? Blocos de tamanho de alocação do SO NTFS... oh! e o tamanho do pacote de rede - isso também é um fator de influência em termos de transferência de dados para o cliente? IPv6 vs IPv4 - isso também é um fator?

performance configuration
  • 1 respostas
  • 1075 Views
Martin Hope
Alocyte
Asked: 2014-12-10 04:06:24 +0800 CST

relatando o consumo de espaço para arquivos no grupo de arquivos - como fazer engenharia reversa do algoritmo espalhando dados entre arquivos

  • 5

Gostaria de saber como calcular a distribuição dos dados consumidos por arquivo em um grupo de arquivos, voltando ao índice (HEAP, CLUSTERED, NONCLUSTERED) que o armazena. Minha intenção é definir qual I/O vai para onde no disco.

Chego ao data_space_idnível de sys.indexes, mostrando as páginas usadas, alocadas; e data_space_idtamanho de sys.filegroups. Portanto, chego onde o algoritmo ponderado (por proporção de espaço livre?) Para armazenar dados em arquivos dentro do grupo de arquivos entra em vigor. Eu posso juntar-me a sys.database_filesusar data_space_id.

De sys.dm_allocation_units (juntado a índices por object_Ide index_Id) obtenho partition_ID; juntando com sys.dm_partitionsavisa a contagem de linhas, páginas usadas e alocadas, permitindo um cálculo para mostrar também o que está livre por partição. Não é possível obter a partição para arquivo...?

Eu tenho uma consulta que distribuo DATA para FILE com base na proporção de páginas usadas por arquivo em um grupo de arquivos, aplicando essa proporção aos dados de índice armazenados no grupo de arquivos ao qual os arquivos pertencem.

Existe uma maneira melhor de detalhar os dados da tabela/índice para a alocação no nível do arquivo? (Medir em vez de calcular?)

Para indid = 0 ou indid = 1, dpages é a contagem de páginas de dados usadas.
Para indid > 1, dpages é a contagem de páginas de índice usadas.

Para indid = 0 ou indid = 1, usado é a contagem do total de páginas usadas para todos os dados de índice e tabela.
Para indid > 1, used é a contagem de páginas usadas para o índice.

Para indid = 0 ou indid = 1, reservado é a contagem de páginas alocadas para todos os índices e dados da tabela.
Para indid > 1, reservado é a contagem de páginas alocadas para o índice.

SQL:

Select  T.Name TableName,
        ISNULL(SI.Name, SI.type_desc) IndexName, 
    SI.index_id, 
    SI.type_desc, 
    SI.data_space_id,
    S.rows Rows,
    S.rowmodctr,
    PIx.avg_fragmentation_in_percent,
    PIx.fragment_count,
    PIx.avg_fragment_size_in_pages,
    CASE SI.Index_ID
    WHEN 0 THEN S.dpages
    WHEN 1 THEN S.dpages
    END DataPages,
    CASE 
    WHEN SI.index_id > 1
        THEN S.dpages
    END IndexPages,
    FileUsageRatio,
    S.dpages*FileUsageRatio RationedDataPagesToFile,
    physical_name,
    CASE SI.Index_ID
    WHEN 0 THEN S.Used 
    WHEN 1 THEN S.Used
    END UsedTableDataPages,
    CASE 
    WHEN SI.index_id > 1
        THEN S.Used
    END UsedIndexPages,
    CASE SI.Index_ID
    WHEN 0 THEN S.reserved 
    WHEN 1 THEN S.reserved
    END ReservedTableDataPages,
    CASE 
    WHEN SI.index_id > 1
        THEN S.Reserved
    END ReservedIndexPages,
    FG.name FileGroupName,
    FG_SpaceUsage.FG_AllocatePages,
    FG_SpaceUsage.FG_UsedPages,
    FG_SpaceUsage.FG_FreePages,
    FG.type_desc FileGroup_Type_desc,
    OIx.singleton_lookup_count,
    OIx.range_scan_count,
    OIx.page_io_latch_wait_count,
    OIx.page_io_latch_wait_in_ms,
    OIx.page_latch_wait_count,
    OIx.page_latch_wait_in_ms,
    OIx.row_lock_count,
    OIx.row_lock_wait_count,
    OIx.row_lock_wait_in_ms,
    OIx.page_lock_count,
    OIx.page_lock_wait_count,
    OIx.page_lock_wait_in_ms
from SYS.tables T
JOIN sys.indexes SI
ON T.Object_ID = SI.Object_ID
JOIN sys.filegroups FG
ON FG.Data_Space_ID = SI.Data_Space_ID
JOIN sys.partitions P
ON P.index_id = SI.index_id
AND P.object_id = SI.object_id
JOIN sys.allocation_units AU
ON AU.allocation_unit_id = P.partition_id
JOIN sys.dm_db_index_operational_stats(db_id(),NULL,NULL,NULL) OIx
ON OIx.index_id = P.index_id
AND OIx.object_id = P.object_id
JOIN sys.dm_db_index_physical_stats(db_id(),NULL,NULL,NULL,NULL) PIx
ON PIx.index_id = P.index_id
AND PIx.object_id = P.object_id
JOIN sys.sysindexes S
ON S.IndID = SI.Index_ID
AND S.ID = SI.Object_ID
JOIN (
SELECT Data_Space_ID, SUM(SIZE) FG_AllocatePages, SUM(UsedPages) FG_UsedPages,   SUM   (SIZE) - SUM(UsedPages) FG_FreePages
FROM SYS.database_files DBF
    CROSS APPLY (   SELECT FILEPROPERTY(DBF.name, 'SpaceUsed') AS UsedPages) PagesUsed
GROUP BY DBF.data_space_id
) FG_SpaceUsage
ON FG_SpaceUsage.data_space_id = FG.data_space_id
JOIN 
(
 SELECT CTE.data_space_id, CTE.file_ID, CTE.physical_name,      CTE.UsedPages*1.0/AGGREGATED.Total_UsedPages FileUsageRatio
 FROM (
 SELECT data_space_Id, File_ID, Physical_Name, Size, PagesUsed.UsedPages, Size-     PagesUsed.UsedPages FreePages
 FROM sys.database_Files DBF
 CROSS APPLY (  SELECT FILEPROPERTY(DBF.name, 'SpaceUsed') AS UsedPages) PagesUsed
 ) CTE
JOIN
    (SELECT Data_Space_ID, SUM(UsedPages) Total_UsedPages
     FROM (
            SELECT data_space_Id, File_ID, Physical_Name, Size, PagesUsed.UsedPages, Size-PagesUsed.UsedPages FreePages
            FROM sys.database_Files DBF
            CROSS APPLY (   SELECT FILEPROPERTY(DBF.name, 'SpaceUsed') AS UsedPages) PagesUsed
            ) CTE
     GROUP BY Data_Space_ID
     ) AGGREGATED
ON CTE.data_space_id = AGGREGATED.data_space_id
) DataUsageRatio
ON DataUsageRatio.data_space_id = FG.data_space_id

ORDER BY TableName, Index_ID
sql-server performance
  • 2 respostas
  • 289 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve