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 / dba / Perguntas / 56307
Accepted
swasheck
swasheck
Asked: 2014-01-08 13:08:03 +0800 CST2014-01-08 13:08:03 +0800 CST 2014-01-08 13:08:03 +0800 CST

Devo alinhar meu arquivo SQL Server e tamanhos de crescimento com os tamanhos de bloco em minha SAN?

  • 772

Fui informado de que nossa SAN (Hitachi) lida com dados em blocos de 42 MB. É um armazenamento em camadas, de modo que cada bloco é avaliado quando o diretor toma decisões sobre quando deve promover/rebaixar o armazenamento para um armazenamento mais rápido/mais lento. Na ausência de peso político para "fixar" determinados LUNs em determinados níveis, estou tentando fazer tudo o que posso para configurar minha instância do SQL Server (2008 R2 Enterprise) para obter sucesso.

Como tal, eu queria saber se haveria algum benefício/prejuízo em alterar meus tamanhos de arquivo e tamanhos de crescimento de arquivo para múltiplos de 42? Um banco de dados de exemplo seria SIZE=57886MBcom um arquivo FILEGROWTH=5124MB.

Vejo o potencial para leituras extras (já que (42*1024)/8 = 8601,6, mas (42*1024)/64 = 672), mas não tenho certeza se estou compreendendo totalmente todos os conceitos aqui.

sql-server-2008-r2 datafile
  • 1 1 respostas
  • 194 Views

1 respostas

  • Voted
  1. Best Answer
    Edward Dortland
    2014-01-09T06:34:05+08:002014-01-09T06:34:05+08:00

    A unidade de 42 MB (a Hitachi também chama isso de página, que conveniente). é a unidade de alocação básica na qual o espaço é alocado para um LUN. Portanto, com o provisionamento dinâmico, um LUN sempre crescerá em etapas de 42 MB. Essas páginas Hitachi de 42 MB são retiradas de diferentes grupos Array em um pool.

    Portanto, sempre que mais espaço for necessário para o LUN, uma nova página Hitachi de 42 MB será alocada. Quando você gravar sua primeira página de dados SQL de 8 KB em um arquivo, uma página Hitachi de 42 MB será alocada. As gravações subsequentes das páginas de dados SQL vão para essa área de 42 MB, até que esteja cheia.

    Agora, o que é importante entender é que uma página de 42 MB vai para um grupo de raid de paridade. Se você tiver pequenos grupos de RAID, por exemplo: RAID-1+0: 2D+2P (2+2) (4 discos) e seu acesso aos dados for principalmente sequencial, isso pode ser um problema quando você tiver um arquivo.

    Digamos que você tenha 4 grupos RAID10, cada um com 4 discos. Acontece que você tem apenas 1 tabela importante com 1 índice clusterizado com 168 MB de tamanho.

    Quando você começar a inserir nesta tabela, a primeira página de alocação de 42 MB será colocada em um dos grupos de RAID, quando esses 42 MB estiverem cheios, a segunda página de alocação será alocada em outro grupo de RAID, provavelmente todas as 4 páginas de alocação de 42 MB serão divididos nos 4 GRUPOS RAID. (estamos excluindo camadas para simplificar neste momento).

    O que é importante entender é que qualquer coisa que você fizer sequencialmente na ordem da chave agrupada terá apenas 4 discos a qualquer momento para lidar com o IO. (2 discos se você estiver gravando...) mesmo que toda a tabela esteja espalhada por 16 discos...

    Se você quiser usar todos os 16 discos. você teria que criar 4 arquivos (em 4 LUNS separados) em um grupo de arquivos e criar a tabela nele. Pelo menos agora você sabe que o SQL está "distribuindo os dados em 4 páginas de alocação de 42 MB"

    Isso pode ser mais problemático com o arquivo de log de transações. É apenas 1 arquivo e sequencial. O único "ajuste" que você pode fazer aqui é tornar os grupos de RAID usados ​​nesse pool tão grandes quanto possível. Contraditório, um grupo de matriz concatenada RAID5 14+2 OU RAID5 28+4 pode ser o mais rápido, embora seja RAID5 em oposição ao RAID 10, pois, até onde eu sei, o maior grupo RAID no RAID 10 que pode ser criado é 4+4 é 8 discos.

    Esteja ciente de que isso se torna muito menos importante se você estiver executando um servidor com vários bancos de dados com vários LUNS, todos compartilhando o mesmo pool, ou ainda mais servidores múltiplos genéricos, todos com LUNS no mesmo pool. Visto que, obviamente, a carga geral seria distribuída uniformemente por todos os grupos de ataque.

    Em relação ao tiering, eu não ficaria muito preocupado com isso de um objetivo de desempenho. (se você não tem permissão para fixar..) Páginas de alocação pesadas de 42 MB são movidas para uma camada de alto desempenho, portanto, você pode ter a situação em que uma tabela está espalhada por três camadas diferentes. Aparentemente, você tem partes de sua mesa que são intensivas em IO e partes que não são...

    preocupe-se com a combinação de pequenos grupos de ataques E arquivos únicos (na verdade, LUNs únicos) E (altas inserções incrementais OU atualizações/exclusões localizadas em tabelas pesadas OU leituras sequenciais pesadas)

    Espero que isso ajude um pouco..

    leitura adicional:

    Guia de design Hitachi Tiering

    Prática recomendada do Hitachi SQL Server

    Postagem no blog sobre 42 unidades alloc

    • 2

relate perguntas

  • Propriedades de redução automática, criptografia e modelo de recuperação no SQL Server 2008 R2

  • A instalação autônoma do cluster do SQL Server 2008 R2 falha com o erro - "Caracteres ilegais no caminho".

  • Migração de banco de dados grande

  • plano de manutenção executado pelo agente

  • Randomizando o conteúdo da tabela e armazenando-o de volta na tabela

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