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-2756

Jason's questions

Martin Hope
Jason
Asked: 2012-08-14 07:06:59 +0800 CST

SQL Server 2008 - Executar a tarefa de verificação de integridade do banco de dados com a opção PHYSICAL_ONLY?

  • 2

Como parte de nossa manutenção noturna, incluímos a tarefa Check Database Integrity, que é um encapsulamento do comando DBCC CHECKDB. Está começando a levar um tempo considerável devido ao tamanho do nosso banco de dados e, depois de ler sobre o comando no MSDN , decidimos seguir o conselho deles:

Portanto, usar a opção PHYSICAL_ONLY pode causar um tempo de execução muito menor para DBCC CHECKDB em grandes bancos de dados e é recomendado para uso frequente em sistemas de produção. Ainda recomendamos que uma execução completa do DBCC CHECKDB seja executada periodicamente. A frequência dessas execuções depende de fatores específicos para negócios individuais e ambientes de produção.

Portanto, queremos alterar nosso plano para executar DBCC CHECKDB com a opção PHYSICAL_ONLY todas as noites e sem ela uma vez por semana. Existe alguma maneira de fazer com que o SQL Server inclua a opção PHYSICAL_ONLY na tarefa de integridade? Posso modificar de alguma forma o T-SQL produzido pela tarefa? Não consigo descobrir como incluir a opção como parte do plano de manutenção.

sql-server sql-server-2008
  • 1 respostas
  • 6920 Views
Martin Hope
Jason
Asked: 2012-03-08 07:51:04 +0800 CST

Design para armazenamento de dados aplicável apenas a um pequeno subconjunto de registros

  • 5

Portanto, meu chefe e eu estamos em desacordo sobre a melhor forma de projetar nosso banco de dados para armazenar dados diversos de determinados clientes.

Basicamente, temos um monte de tabelas em algum formato semelhante a este (em pseudo-código para simplificar):

TABLE [dbo].[SalesData]
[CampaignID] int IDENTITY(1, 1) NOT NULL, (This is the PK)
[CustomerID] int NULL,
[Calls] float NULL,
[Responses] float NULL,
[Sales] float NULL,
[Revenue] money NULL,
[Cost] money NULL,
[WebSales] float NULL,
[Channel] nvarchar(20) NULL

O que acontece é que, à medida que ganhamos clientes, às vezes somos forçados a adicionar algum tipo de coleta de dados personalizada para cada um. Para esta tabela, tudo é usado por cada cliente (temos cerca de 20), exceto WebSales e Channel, que é usado apenas por 1 cliente. Outro cliente deseja que alguns novos dados sejam rastreados e, portanto, precisamos adicionar mais colunas ou separar esses dados em uma tabela relacionada e iniciar um sistema de supertipo-subtipo.

O que eu quero fazer também é separar WebSales e Channel e adicionar uma tabela para cada cliente desta maneira:

TABLE [dbo].[SalesData_Client1] 
[CampaignID] int NOT NULL, (PK and FK to the SalesData table)
[WebSales] float NOT NULL DEFAULT 0,
[Channel] nvarchar(20) NOT NULL DEFAULT ''
ADD CONSTRAINT [CK__SalesData_Client1__CustomersCampaignID] 
CHECK (dbo.CustomerOfCampaignID(CampaignID) = Client1) 

Em seguida, descartaria essas colunas da tabela original e transformaria o segundo cliente em uma tabela como esta também. O chefe acha que isso significa que teremos que adicionar muitas tabelas à medida que ganhamos clientes e quer adicionar mais colunas. Ele prefere alterar a tabela SalesData assim:

TABLE [dbo].[SalesData]
[CampaignID] int IDENTITY(1, 1) NOT NULL, (This is the PK)
[CustomerID] int NULL,
[Calls] float NULL,
[Responses] float NULL,
[Sales] float NULL,
[Revenue] money NULL,
[Cost] money NULL,
[Unknown] char(10) NULL,
[Misc1] float NULL,
[Misc2] nvarchar(20) NULL
[Misc3] int NULL,
[Misc4] int NULL
[Misc5] int NULL

Onde as colunas "Misc" podem ser usadas para qualquer coisa, e então os programadores podem "simplesmente descobrir com base no cliente". Eu sei as razões pelas quais você não deveria fazer dessa maneira, isso viola a normalização e tornará o desempenho cada vez pior à medida que adicionamos colunas, etc. Mas ele continua voltando com "É muito mais simples" e não gosta disso cada novo cliente pode significar outra nova mesa. Ele também ressalta que colunas mais recentes, como Websales, podem ser usadas por mais de 1 cliente eventualmente, e será uma grande dor de cabeça tê-las em várias tabelas de subtipos ou movê-las de várias tabelas de subtipos para a tabela principal, se precisarmos sempre quis fazer isso.

Existe um método melhor do que a solução de supertipo/subtipo que eu criei para facilitar as coisas para ele e para os programadores? Uma observação importante é que os dados de cada cliente estão basicamente em seu próprio universo e NUNCA se misturarão. Sei que é meio subjetivo e a resposta dependerá de quantas colunas "Misc" estamos esperando seriamente. A razão pela qual quero seguir a rota do subtipo é porque o próximo cliente pode exigir 5 novas colunas bigint, pelo que sei.

sql-server-2008 database-design
  • 2 respostas
  • 233 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