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

adopilot's questions

Martin Hope
adopilot
Asked: 2018-05-08 10:44:33 +0800 CST

A avaliação do parâmetro em relação à string harcoded sempre retorna false

  • 0

No ambiente de trabalho do Mysql estou tentando fazer uma consulta com parâmetro.

Mas tenho um comportamento estranho quando tento comparar parâmetro com strings estáticas.

Por que não recebo nenhuma consulta de formulário de linhas como esta? Quando executo query , recebo linhas de cabeçalho, mas não recebo nenhuma linha. Tenho certeza de que há linhas nas chamadas de tabela. Perdoe-me se isso for muito óbvio, mas eu no MsSql fiz isso um milhão de vezes sem problemas.

set @kontakt ='fo' ;
select
*
from calls
where (@kontakt = 'fo');
mysql parameter
  • 1 respostas
  • 27 Views
Martin Hope
adopilot
Asked: 2018-04-24 04:51:23 +0800 CST

Encontre tabelas com vários índices na mesma coluna

  • 2

Estou tendo um problema com o scaffolding PostgreSQL DB porque o npgsql não lida bem com tabelas com dois índices na mesma coluna. Aqui está um link para o meu projeto no github .

Estou tentando encontrar esses índices/tabelas para poder excluí-los do meu comando de scaffolding.

Exemplo:

CREATE TABLE public.altreproc (
  apcod integer NOT NULL,
  aptip character(3),
  apcam character(3),
  CONSTRAINT altreproc_pkey PRIMARY KEY (apcod)
);

CREATE INDEX ialtreproc1
  ON public.altreproc
  USING btree
  (aptip COLLATE pg_catalog."default");

CREATE INDEX ialtreproc2
  ON public.altreproc
  USING btree
  (apcam COLLATE pg_catalog."default");

CREATE INDEX ialtreproc3
  ON public.altreproc
  USING btree
  (aptip COLLATE pg_catalog."default" DESC);

Meu problema é quando uma tabela tem 2 índices diferentes com a mesma coluna (um ASCe um DESC); Estou tentando consultar tabelas/índices como este no db que estou tentando scaffold.

Meu objetivo é encontrar tabelas que contenham mais de um índice na mesma coluna.

postgresql index
  • 1 respostas
  • 1550 Views
Martin Hope
adopilot
Asked: 2017-05-13 10:08:42 +0800 CST

Coluna MySql sem agregações e agrupar por cláusula

  • 2

Como venho do mundo MSSQL estou confuso, o que acontece em consultas onde tem cláusula group by e outras colunas em select que não passam por funções agregadas.

Fiquei chocado quando o MySql executou uma consulta assim

select * from myTable
group by columnThatIsNotPk

Ou mexa assim http://sqlfiddle.com/#!9/b30bf5/1

Minhas perguntas são:

  1. Existe uma explicação de quais dados vou obter para colunas que não existem na cláusula group by?
  2. É correto usar consultas como essa?
  3. Perco ou ganho performances com consultas como essa?
  4. O MySql implementa as agregações First e Last como o JetEngine no ACCESS e, infelizmente, falta o recurso no mecanismo MSSQL?
mysql group-by
  • 1 respostas
  • 161 Views
Martin Hope
adopilot
Asked: 2015-05-05 06:58:29 +0800 CST

Como definir manualmente a página de código e o agrupamento para meu cubo SSAS?

  • 1

Quando tento processar meu cubo Olap SSAS2012, recebo muitos erros como este

Errors in the OLAP storage engine:
A duplicate attribute key has been found when processing: Table: 'dbo_ART'
,Column: 'NAZIV'
,Value: 'ARMATURA ZA KERAMIĆKI VODOKOTLIĆ'. 
The attribute is 'Art Naziv'.
Errors in the OLAP storage engine: The record was skipped because the attribute key is a duplicate.
Attribute: Art Naziv of Dimension: ART from Database: robot, Record: 2451.

Ao investigar esse erro, descobri que em meu banco de dados transacional na tabela ART existem duas linhas totalmente diferentes com o valor da coluna NAZIV ='ARMATURA ZA KERAMIĆKI VODOKOTLIĆ' a única diferença desses dois registros é que um não possui letras com 'Ć' e 'Č' no lado oposto está a letra 'C'.

Se eu fizer

select naziv
from art
group by naziv
having count(*)>1

Eu não recebo nenhuma linha duplicada.
Porque alguns bancos de dados transacionais sabem a diferença entre as letras 'Č','Ć','C'.
Mas o cubo OLAP ao processar o Dimension ART lê todas essas letras como "C" e obtém chaves duplicadas.
Meu banco de dados transacional está no servidor padrão SQL 2012 R2 com Collation =Croatian_CI_AS server é geralmente definido como Latin1_General_CI_AI. Meu servidor SSAS 2012 Enterprise tem o Windows Collation definido como Latin1_General e todos os sensíveis estão desmarcados.

Como devo definir minhas configurações de idioma para o servidor SSAS para evitar esse erro. Essa configuração é "sensível a sotaque". Ou preciso alterar meu Windows Collation para outra coisa?

Configurações de idioma do SSAS

ssas collation
  • 1 respostas
  • 1537 Views
Martin Hope
adopilot
Asked: 2014-12-04 09:16:21 +0800 CST

SQL Server: como criar usuário com acesso apenas de HOSTNAME ou endereço IP específico

  • 8

Eu tenho um aplicativo estúpido no qual confio, que tem uma string de conexão codificada dentro.

Para aumentar a segurança do meu SQL Server, adoraria tornar os usuários do SQL iguais a um aplicativo interno codificado, mas quero permitir que esse usuário possa usar o SQL Server apenas de determinado host (endereço IP).

sql-server sql-server-2012
  • 2 respostas
  • 9154 Views
Martin Hope
adopilot
Asked: 2013-09-13 07:13:07 +0800 CST

Ajude-me a mapear os tipos de coluna entre as tabelas SQL e TopSpeed ​​Clarion

  • 2

Tenho a tarefa de converter um aplicativo Clarion antigo em um novo no SQL Server 2012.

Tudo o que tenho são 200 mesas com extensão TPS que só consigo abrir pelo programa chamado TopScan. (Sem odbc, sem documentação técnica, sem suporte).

Estou fazendo um programa C# que vai extrair dados para SQL.

Estrutura de dados que posso ver em textos como este

                   FILE,DRIVER('TOPSPEED'),NAME('C:\bIRA2013\BIRA_ARHIMED\PART.TPS')
PART:K_SIFPAR        KEY(+PART:SIFPAR),NOCASE,PRIMARY
PART:K_ZIRO          KEY(+PART:ZIRO),DUP,NOCASE
PART:K_NAZIV1        KEY(+PART:NAZIV1),DUP,NOCASE
PART:K_GRUPA         KEY(+PART:GRUPA),DUP,NOCASE
PART:K_PORBR         KEY(+PART:PORBR),DUP,NOCASE
PART:K_KOMER_SIFPAR  KEY(+PART:KOMER,+PART:SIFPAR),DUP,NOCASE
PART:K_BANKA_SIFPAR  KEY(+PART:BANKA,+PART:SIFPAR),DUP,NOCASE
PART:K_GRAD_SIFPAR   KEY(+PART:GRAD,+PART:SIFPAR),DUP,NOCASE
PART:K_NACPL_SIFPAR  KEY(+PART:NACPL,+PART:SIFPAR),DUP,NOCASE
PART:K_NACPLD_SIFPAR KEY(+PART:NACPLD,+PART:SIFPAR),DUP,NOCASE
PART:OPIS            MEMO(2000)
RECORD               RECORD
PART:SIFPAR            STRING(10)
PART:ZIRO              STRING(20)
PART:PORBR             STRING(13)
PART:PORBRBIH          STRING(10)
PART:NAZIV1            STRING(40)
PART:NAZIV2            STRING(40)
PART:GRUPA             STRING(10)
PART:KUP               STRING(2)
PART:DOB               STRING(2)
PART:ADRESA            STRING(30)
PART:GRAD              STRING(25)
PART:PBROJ             STRING(5)
PART:TEL1              STRING(15)
PART:TEL2              STRING(15)
PART:FAX               STRING(15)
PART:OSOBA             STRING(30)
PART:RABAT             DECIMAL(5,2)
PART:RABATD            DECIMAL(5,2)
PART:CASSA             DECIMAL(5,2)
PART:CASSAD            DECIMAL(5,2)
PART:NACPL             STRING(2)
PART:NACPLD            STRING(2)
PART:KOEF              DECIMAL(5,4)
PART:DVO               LONG
PART:BANKA             STRING(6)
PART:VEZDOK            STRING(10)
PART:IZJAVA            STRING(10)
PART:KOMER             STRING(3)
PART:EMAIL             STRING(40)
PART:WWW               STRING(60)
PART:ID                STRING(2)
PART:D                 LONG
                     END
                   END

Acho que as ROWS entre RECORD e END representam a estrutura da tabela. Quando percorro todas as tabelas, encontro os seguintes tipos de dados como na lista

STRING(10) --many sizes (10,20,100,200)
CSTRING(256) --many sizes (2000,3000)
LONG  
DECIMAL(7,4) 
BYTE 
REAL
GROUP

Como devo mapear esses tipos para os tipos do SQL Server?

Pra mim DECIMALé só golpe direto, mas não tenho tanta certeza nem disso.

Por que estou tão confuso é que não consigo encontrar o tipo correspondente para DATE.

Sub questão é, como Clarion mantém datas em tabelas?

sql-server datatypes
  • 3 respostas
  • 1226 Views
Martin Hope
adopilot
Asked: 2013-07-05 01:00:29 +0800 CST

Como criar um índice para exclusões mais rápidas

  • 5

Eu quero acelerar o seguinte pedaço de código

delete from ssn_sdo
where       
           (art_id=@art_id and skl_id=@skl_id and @level=0 )
        or (art_id=@art_id and skl_id=@skl_id and @level=1 and tip=@tip)
        or (art_id=@art_id and skl_id=@skl_id and doc_id = @doc_id)

Meu servidor é MS SQL-Server 2005.

art_id, skl_ide doc_idsão inteiros, enquanto tip é o varchar(10)tipo de.

Eu quero fazer um índice(s) na ssn_sdotabela para que essa exclusão seja mais rápida.
O que eu estava pensando em fazer é fazer três índices, cada um para cada caso:

doc_id (ASC), art_id (ASC), skl_id (ASC)  
skl_id (ASC), art_id (ASC), tip (ASC)  
skl_id (ASC), art_id (ASC),  

Ou existe uma maneira melhor de criar um índice que inclua todos os três casos.
Sou cuidadoso com os índices porque não quero desacelerar as inserções nesta tabela.

sql-server database-design
  • 2 respostas
  • 417 Views
Martin Hope
adopilot
Asked: 2013-06-16 08:06:44 +0800 CST

como posso criar soma de verificação para validar nenhuma alteração em pares de strings int na tabela

  • 0

Caso de negócio é.
1) Os usuários imprimem o documento em papel
2) os usuários carregam o papel impresso para o chefe, o chefe canta no papel
3) depois disso, os usuários vão ao administrador para assinar digitalmente esse papel.

Minha tarefa é ajudar o administrador a garantir de maneira fácil que não haja alterações entre o documento em papel e o documento digital.

O documento é escrito em três tabelas SQL.
Na 1ª integridade da tabela é string+data
Na 2ª integridade da tabela é combinação int+float
Na 3ª integridade da tabela é int+string.

Há outras colunas nestas tabelas que podem ser atualizadas livremente após o documento Boss sing sem a necessidade de Boss sing novamente.

Minha ideia é a partir dessas três tabelas/combinações fazer algum tipo de SHA ou CheckSum. O que será o mesmo enquanto não houver alterações no documento.
Não quero que minha soma de verificação seja infinita ou muito longa para que o administrador possa verificar facilmente se há violação da minha integridade personalizada.

Começo a pensar que posso for int - float make sum(int * folat)
For stings para cada letra, posso usar o número ASCII e fazer sum(int * (ascii(S)+ascii(T)+ascii(I)+ascii (N)+ascii(G))).
For date - int same make int * (date to int) Depois disso posso totalizar (soma) esses três números e converter para HEX. Mas talvez meu número esteja fora do alcance ou muito grande para comparação a olho nu.

Como posso encolher números muito grandes para serem facilmente legíveis e comparáveis ​​por humanos? Existe outra maneira de garantir que não haja alterações em minhas colunas protegidas em um período de tempo?

Estou usando o servidor MSSQL2005/8. Meu mecanismo de geração de relatórios é, na maioria das vezes, SqlReportingServices, mas prefiro fazer esse login no nível do banco de dados e não no nível do relatório.

Não quero bloquear a edição do documento porque, às vezes, o chefe pressiona os usuários a voltar e corrigir o documento antes de assinar.
Eu também não posso empurrar o chefe para pegar o mouse na mão.

sql-server database-design
  • 1 respostas
  • 581 Views
Martin Hope
adopilot
Asked: 2013-05-07 23:18:53 +0800 CST

Existe uma diferença de desempenho entre @date e getdate()?

  • 6

Normalmente eu uso a getdate()função em minhas cláusulas where para voltar no tempo. Algo como:

 DOC.DATUM >= DATEADD(DD,-1*SSN_SDO.DANA_ZA_POVRAT,GETDATE()) 

O SQL Server 2008R2 executará consultas mais rapidamente se eu primeiro declarar um parâmetro de data e usá-lo em minhas consultas?

declare @dateNow date = getdate()
...
where
     DOC.DATUM >= DATEADD(DD,-1*SSN_SDO.DANA_ZA_POVRAT,@dateNow ) 
sql-server sql-server-2008
  • 2 respostas
  • 7241 Views
Martin Hope
adopilot
Asked: 2013-04-27 06:05:48 +0800 CST

Maneira mais fácil de lidar com tantas situações isnull ()

  • 1

Existe alguma boa maneira de evitar escrever a isnull()função tantas vezes dentro de um procedimento armazenado?

Eu tenho um procedimento armazenado que usa a isnull()função quase 30 vezes, acho que estou perdendo um conceito, mas até encontrar uma maneira melhor de obter meus dados, vou adorar limpar meu código de tantas isnull()funções.

Posso, por enquanto, definir o SQL Server 2008 R2 para usar valores nulos como float 0? A maior parte do meu isnull()é apenas adicionar valor zero 0 se não houver dados para que eu possa fazer operações matemáticas.

EDIT: Não sou preguiçoso, apenas tentando limpar meu código e evitar partes selecionadas, fica assim

select  
   vrsta.NAZIV
   ,isnull(sum(prod.prod_mpci),0) as prod_MPCI
   ,isnull(sum(isnull(mal_MPCI,0) + (vel_kol * isnull(mal_MPC,vel_VPC))),0) as lager_mpci
   ,isnull(sum(vel_NCI),0)+isnulL(sum(mal_NCI),0) as lager_nci
   ,sum(   case 
            when isnull(vel_KOL,0)+isnull(mal_KOL,0) > isnull(prod.prod_kol,0) and isnull(dzn.dzn,'2010-01-01') < @dzu
                    then ((isnull(vel_KOL,0)+isnull(mal_KOL,0))-isnull(prod.prod_kol,0)) * isnull(mal_MPC,vel_VPC)
                    else 0 end
            ) as visak_MPC
   ,sum(   case 
            when isnull(vel_KOL,0)+isnull(mal_KOL,0) > isnull(prod.prod_kol,0) and isnull(dzn.dzn,'2010-01-01') < @dzu
                    then ((isnull(vel_KOL,0)+isnull(mal_KOL,0))-isnull(prod.prod_kol,0)) * isnull(mal_NC,vel_NC)
                    else 0 end
            ) as visak_MPC
    ,sum(   case 
            when isnull(vel_KOL,0)+isnull(mal_KOL,0) <= isnull(prod.prod_kol,0) 
                    then ((isnull(vel_KOL,0)+isnull(mal_KOL,0))-isnull(prod.prod_kol,0)) * isnull(mal_MPC,vel_VPC)
                    else 0 end
            ) as manjak_MPC

    ,sum(   case 
            when isnull(vel_KOL,0)+isnull(mal_KOL,0) <= isnull(prod.prod_kol,0) 
                    then ((isnull(vel_KOL,0)+isnull(mal_KOL,0))-isnull(prod.prod_kol,0)) * isnull(mal_NC,vel_NC)
                    else 0 end
            ) as manjak_NC
sql-server sql-server-2008
  • 3 respostas
  • 6834 Views
Martin Hope
adopilot
Asked: 2013-04-11 13:52:51 +0800 CST

Como lidar com situações de atualização ou inserção

  • 1

De vez em quando, meus procedimentos armazenados parecem

create procedure handle_data 
    @fk int,
    @value varchar(10)
as
begin
    if exists (select * from my_table where id = @fk)
    begin
        update my_table
        set value = @value
        where id = @fk
    end 
    else 
    begin
        insert into my_table (fk, value)
            select @fk, @value
    end 
end 

Provavelmente há falha no design do aplicativo que chama esse procedimento armazenado.
Devo evitar fazer aplicativos que executam o mesmo procedimento armazenado e métodos para inserir novos dados e também atualizar os antigos?

Existe uma maneira melhor de atualizar ou inserir dados em uma abordagem?

Estou usando o SQL Server 2005/2008.

sql-server-2008 database-design
  • 3 respostas
  • 238 Views
Martin Hope
adopilot
Asked: 2013-02-20 14:34:00 +0800 CST

Existem diferenças no desempenho da obtenção de dados entre a pesquisa de texto completo e as colunas indexadas

  • 2

No SQL Server 2008 R2, tenho uma consulta que se parece com

create stored procedure give_me_art @filter varchar(15),@skl_id int
begin
select 
  id,naziv,sifra,isnull(lager.kolicina,0) as lager
from art 
left outer join lager on art.id=lager.art_id and lager.skl_id=@skl_id
where sifra like '%'+@filter+'%' or naziv like '%'+@filter+'
end

Eu tenho um índice na coluna naziv e na coluna sifra.

Estou pensando em mudar esta consulta para pesquisa de texto completo. Table art tem cerca de 150K registros e meu principal objetivo é obter uma resposta mais rápida do SQL Server, pois essa consulta é comum no dia a dia.

Se eu criar um índice de texto completo nessas duas colunas e redesenhar minha consulta para usar o índice de texto completo, o que acontecerá com o desempenho dessa consulta?

sql-server performance
  • 1 respostas
  • 175 Views
Martin Hope
adopilot
Asked: 2013-02-15 07:00:27 +0800 CST

Preços de bancos de dados no Azure

  • 4

Estou um pouco confuso sobre os preços dos dados no Azure. Descobri em um blog da MS que 50 GB tem um preço de $ 125.

A parte que falta para mim é, se eu precisar apenas de um banco de dados na nuvem:

  • Eu pago apenas o valor de $ 125?
  • Ou tenho que pagar separadamente por RAM, armazenamento, processadores e outras partes que um servidor precisava para operar?
  • Qual é a história sobre o desempenho de um banco de dados do Azure?
  • Todas as bases de dados possuem os mesmos recursos disponíveis para operação?
azure-sql-database
  • 1 respostas
  • 176 Views
Martin Hope
adopilot
Asked: 2013-02-13 15:29:04 +0800 CST

Replicação entre o SQL Server 2005 e o banco de dados do Azure

  • 4

É possível configurar a replicação transicional entre um SQL Server 2005 e um banco de dados SQL Azure?

Meu servidor está quase no fim da vida útil e prefiro migrar para uma infraestrutura de nuvem em vez de comprar um novo hardware.

Não consegui encontrar nenhuma documentação informando se o SQL Azure Data Sync pode ou não coexistir com a replicação do SQL Server.

sql-server sql-server-2005
  • 2 respostas
  • 1380 Views
Martin Hope
adopilot
Asked: 2013-01-17 06:12:13 +0800 CST

Encontre o topo por valores por porcentagem usando o intervalo no SQL Server

  • 3

Qual será a maneira mais fácil de agrupar registros por intervalo de porcentagens.

Aqui o que eu tento realizar

Select top percents between 50 and 75 * from myTable order by PKI

Aqui está a maneira como fiz isso, mas sinto que é muito mais fácil

select 
    top(25) percent 
     *
from myTable
where id not in (
            select 
                top(25) percent 
                 ID
            from myTable
            order by PKI
            )
order by PKI

Este deve ser o top 50-75 por cento da minha mesa?

Existe uma maneira melhor (melhor) de fazer isso.

sql-server sql-server-2008-r2
  • 2 respostas
  • 1143 Views
Martin Hope
adopilot
Asked: 2012-11-14 07:32:26 +0800 CST

Restringir o registro a ser atualizado ou excluído de acordo com as datas dentro da linha do SQL Server 2005

  • 4

Eu tenho replicação de transação entre dois SQL Servers. Para fins de teste, apaguei muitos registros no assinante que ainda existiam no editor.

Agora sei que, se alguém atualizar ou excluir alguns registros no editor, que não existem no meu assinante, minha replicação falhará.

Sei que também poderia filtrar dados no distribuidor, mas isso significaria reinicializar meus assinantes e isso significaria transferir quase 40 GB por um link lento.

Portanto, enquanto estou testando meu banco de dados inscrito, adoraria restringir os usuários a apenas atualizar ou excluir registros no lado do editor. Minha tabela de origem possui um campo de data e desejo restringir atualizações ou exclusões de acordo com a data.

É melhor usar um gatilho ou uma restrição para isso?

Como posso evitar o máximo de bloqueio de registro possível?

sql-server sql-server-2005
  • 1 respostas
  • 1172 Views
Martin Hope
adopilot
Asked: 2012-05-09 08:32:53 +0800 CST

Encontre o último valor (max) de acordo com TimeStamp usando o método de atualização

  • 1

Eu tenho a tarefa de encontrar valores inteiros de acordo com o último (max) do valor do timestamp (datetime).
Por ser uma consulta tão complicada, estou considerando esta maneira de encontrar o último valor algo assim

Pseudo-código:

update my_table
    set value=last_value
from my_table 
    inner join (
                 select *
                    from (
                    select top(100) percent
                        from 
                            ( select ts,last_value,pk_v from tb1
                                    union all
                              select ts,last_value,pk_v from tb2
                              ..
                              ) as temp
                              order by ts 
                              ) as temp_order
                            ) as temp on my_table.pk_v=temp.pk_v

A ideia é fazer uma subconsulta ordenada por timestamp e depois atualizar a tabela.
Nesse caso, em algum momento haverá mais valores na subconsulta para um pk_val (valor da chave primária).

Para mim agora parece que é impossível e estou pensando em fazer atualizações no CURSOR. Mas antes de continuar, adoraria ouvir você escolher isso.

A pergunta mais limpa seria: como as atualizações funcionam quando em uma transação (selecionar) o SQL precisa atualizar a mesma linha duas vezes?

* EDIT:1 * Aqui está uma amostra com dados

create table #Table_To_update
(pk int not null,last_value int)

insert into #Table_To_update
select 1,null
union all
select 2,null
union all
select 3,null

create table #table_as_sub_query
(fk int, value int ,ts datetime)


insert into #table_as_sub_query
select 1,5,'2012-01-01'
union all 
select 1,6,'2012-03-01'
union all 
select 1,2,'2012-04-01'
union all
select 2,7,'2012-02-01'
union all 
select 2,8,'2012-02-05'
union all 
select 2,6,'2012-04-01'
union all
select 3,0,'2012-01-01'
union all 
select 3,9,'2012-05-05'
union all 
select 3,12,'2012-01-01'



/*--This Way I want to update new table with last values --*/
update #Table_To_update
set last_value=table2.value
from #Table_To_update table1
inner join (select 
                top(100) percent
                *
            from #table_as_sub_query
                order by ts desc
                ) as table2 on table1.pk=table2.fk
sql-server sql-server-2005
  • 1 respostas
  • 5520 Views
Martin Hope
adopilot
Asked: 2012-03-13 00:23:50 +0800 CST

Melhor prática para armazenar grupos de datas por valor nominal de meses-ano

  • 6

Estou fazendo um serviço que precisa manter os dados agrupados e calculados pela combinação ano-mês. Eu sei como calcular dados e colocá-los em uma nova tabela. Mas estou confuso sobre que tipo de dados devo usar para armazenar o valor do mês - ano. Aqui está o que eu considerei.

  1. Duas colunas inteiras, uma para o ano e outra para o mês (claras para entender e fortes para manipular (qualquer pessoa que use esta tabela pode facilmente usar intervalos e ordens), mas acho que isso levaria mais espaço do que outra solução.
  2. Use um campo Data e sempre armazene uma data para o mês inteiro. (Difícil explicar aos usuários como funciona e como criar cláusulas WHERE)
  3. Uma coluna varchar(7) e coloque as picadas como 2012-02,2013-01. Para mim, isso é fácil de entender, mas difícil de manipular.

Qual devo escolher? ou existe outra solução. Alguém pode sugerir de acordo com o desempenho qual caminho será uma boa solução, porque a maioria das consultas usará o intervalo de dados em que a solução e minha nova tabela terão cerca de 2 a 5 milhões de registros.

sql-server-2008 database-design
  • 4 respostas
  • 9622 Views
Martin Hope
adopilot
Asked: 2012-02-24 08:34:06 +0800 CST

Parâmetro com valor de tabela como parâmetro de saída para procedimento armazenado

  • 41

É possível que o parâmetro Table-Valued seja usado como parâmetro de saída para o procedimento armazenado?

Aqui está, o que eu quero fazer no código

/*First I create MY type */
CREATE TYPE typ_test AS TABLE 
(
     id int not null
    ,name varchar(50) not null
    ,value varchar(50) not null
    PRIMARY KEY (id)
)
GO


--Now I want to create stored procedu whic is going to send output type I created, 
--But it looks like it is inpossible, at least in SQL2008
create  PROCEDURE [dbo].sp_test
         @od datetime 
        ,@do datetime 
        ,@poruka varchar(Max) output
        ,@iznos money output 
        ,@racun_stavke  dbo.typ_test   READONLY --Can I Change READONLY with OUTPUT ?
AS
BEGIN
    SET NOCOUNT ON;

    /*FILL MY OUTPUT PARAMS AS I LIKE */


    end
sql-server-2008 stored-procedures
  • 4 respostas
  • 77945 Views
Martin Hope
adopilot
Asked: 2012-01-29 04:18:37 +0800 CST

Ajude-me a projetar melhor minha consulta para que eu possa obter mais desempenho

  • 0

Preciso encontrar a chamada primeira entrada no banco de dados para itens relacionados a seus parceiros. Eu escrevi a consulta e está me dando resultados corretos, mas é péssimo com desempenhos.
Eu suspeito que perdi a concepção, portanto, esta consulta pode ser escrita muito melhor. Portanto, peço que me ajude a redesenhar esta consulta para obter um melhor desempenho.
Meu sistema de banco de dados em execução é SQL Server 2008

declare @od_datuma datetime
declare @do_datuma datetime

set @od_datuma='2011-12-01'
set @do_datuma='2011-12-31'


select 
doc.PAR_ID
,sdo.art_id
,MIN(doc.id) as doc_id
from 
dokumenti
inner join DOC on dokumenti.tip=DOC.TIP
inner join SDO on DOC.ID=SDO.DOC_ID
left  outer join (
    select par_id,art_id from dokumenti
            inner join DOC on dokumenti.tip=DOC.TIP
            inner join SDO on DOC.ID=SDO.DOC_ID     
            where   dokumenti.NABAVA =1 and
                    dokumenti.KOL_UL=1 and
                    DOC.DATUM<@od_datuma
                )  as stari_uazi on DOC.PAR_ID=stari_uazi.PAR_ID and SDO.ART_ID=stari_uazi.ART_ID
where 
dokumenti.NABAVA =1 and
dokumenti.KOL_UL=1 and
stari_uazi.ART_ID is null and 
doc.datum between @od_datuma and @do_datuma
group by doc.PAR_ID,sdo.art_id
sql-server database-design
  • 1 respostas
  • 150 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