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

Tufan Chand's questions

Martin Hope
Tufan Chand
Asked: 2017-03-28 07:58:04 +0800 CST

Atualizando linhas em uma tabela grande no sql server

  • 0

Eu quero atualizar uma tabela grande que tem 83.423.460 linhas e está crescendo.

A consulta abaixo leva 8 minutos para ser executada com sucesso:

 UPDATE FPP_Invoice_Revenue
 SET    Till_Prev_Inv_Amt = Till_Prev_Inv_Amt_In_USD / 0.0285714286,
        Cur_Inv_Amt = Cur_Inv_Amt_In_USD / 0.0285714286,
        YTD_Inv_Amt = YTD_Inv_Amt_In_USD / 0.0285714286
 WHERE  SOW_Number = '20014378'

Existe um clustered index. Pensei em desabilitar esse índice antes de atualizar e reconstruir novamente após a atualização, mas isso também não funcionou, pois a reconstrução está demorando muito.

Eu li em algum lugar que isso pode ser alcançado dividindo-se em pequenas partes, mas como posso dividir a consulta acima?

DDL:

CREATE TABLE [dbo].[FPP_Invoice_Revenue](
[Project_Code] [varchar](10) NOT NULL,
[Project_Desc] [varchar](50) NULL,
[SOW_Number] [varchar](10) NOT NULL,
[SOW_Desc] [varchar](50) NULL,
[Invoice_No] [varchar](50) NOT NULL,
[Inv_Month] [int] NOT NULL,
[Inv_Year] [int] NOT NULL,
[Billing_Date] [smalldatetime] NULL,
[Doc_Currency] [varchar](10) NULL,
[Vertical] [varchar](255) NULL,
[Till_Prev_Inv_Amt] [numeric](24, 10) NULL,
[Cur_Inv_Amt] [numeric](24, 10) NULL,
[YTD_Inv_Amt] [numeric](24, 10) NULL,
[Till_Prev_Inv_Amt_In_USD] [numeric](24, 10) NULL,
[Cur_Inv_Amt_In_USD] [numeric](24, 10) NULL,
[YTD_Inv_Amt_In_USD] [numeric](24, 10) NULL,
CONSTRAINT [PK_FPP_Invoice_Revenue] PRIMARY KEY CLUSTERED 
(
[Project_Code] ASC,
[SOW_Number] ASC,
[Invoice_No] ASC,
[Inv_Month] ASC,
[Inv_Year] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,       
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_PADDING OFF
GO

Plano de execução:

insira a descrição da imagem aqui

sql-server performance
  • 3 respostas
  • 25829 Views
Martin Hope
Tufan Chand
Asked: 2017-01-21 05:25:14 +0800 CST

calcular a diferença de data mensalmente no sqlserver

  • 1

Estou usando o SQL SERVER. Eu quero calcular a diferença de data exata no mês sábio. Eu sei que há uma função embutida DATEDIFFpara isso, mas eu quero alguma diferença fracionária personalizada como:

sDate(yyyy-MM-dd)  eDate          output              formula
---------------------------------------------------------------------------------------------------------------
2016-03-03        2016-03-05      0.0967741           3.00/31.00 (daycount/lastday of the month)
2016-03-05        2016-06-05      3.0376343          (27.00/31.00)+(30.00/30.00)+(31.00/31.00)+(5.00/30.00)
2016-02-26        2016-04-03      1.2379310          (4.00/29.00)+(31.00/31.00)+(3.00/30.00)

Então, como isso será calculado? Posso aplicar essa lógica usando uma função, mas não quero fazer isso. Como posso aplicar essa lógica em uma única consulta?

Sua valiosa sugestão será muito apreciada.

sql-server functions
  • 3 respostas
  • 1142 Views
Martin Hope
Tufan Chand
Asked: 2015-08-28 04:51:51 +0800 CST

Junte-se com valores separados por vírgula no SQL Server

  • 6

Eu tenho uma mesa [CourseMaster]LIKE

CourseId    CourseName
-----------------------
  01          ABC
  02          DEF
  03          GHI
  04          JKL
  05          MNO
  06          PQR
  07          STU

E eu tenho outra tabela [StudentMaster]para detalhes do aluno LIKE

ROLLNO  NAME    ADDRESS          Course
------------------------------------------------
12345   RAM     RAM ADDRESS      01,02,06                      
25695   HARI    HARI ADDRESS     02,06                         
89685   JEFF    JEFF ADDRESS     03,05,06,07                   
47896   DAISY   DAISY ADDRESS    03         

Aqui eu quero buscar os detalhes do aluno com CourseName(Not CourseId).

Se os valores em Coursenão forem separados por vírgula, seria muito simples querybuscar os detalhes com join.

A partir do meu conhecimento, posso executar dois queriespara o mesmo resultado que quero, uma consulta para buscar os detalhes do aluno [StudentMaster]no front-end. E outro para apenas buscar o CourseNamede [CourseMaster]correspondendo CourseIdatravés de um loop.

Mas o fato de eu querer o resultado por apenas um queryao invés de escrever dois queriespara esta pequena tarefa.

Acho que é 100% possível. E meu resultado esperado será:

ROLLNO  NAME    ADDRESS         Course
-------------------------------------------
12345   RAM     RAM ADDRESS     ABC,DEF,PQR                   
25695   HARI    HARI ADDRESS    DEF,PQR                       
89685   JEFF    JEFF ADDRESS    GHI,MNO,PQR,STU               
47896   DAISY   DAISY ADDRESS   GHI                 

Obrigado e qualquer sugestão valiosa será muito apreciada.

sql-server join
  • 4 respostas
  • 57257 Views
Martin Hope
Tufan Chand
Asked: 2015-07-14 23:21:01 +0800 CST

Incrementar automaticamente um valor usando o cursor no SQLServer

  • 0

Estou desenvolvendo um sistema de gerenciamento de licenças de funcionários e

Minha estrutura de tabela com dados é:

+-----------+---------+----------+----------+------------+--------------+
|   EmpID   |   CL    |     PL   | ISActive | LastUpdate |  NextUpdate  |
+-----------+---------+----------+----------+------------+--------------+
|   E001    |   5     |     3    |    1     | 2015-01-01 |  2015-02-01  |
+-----------+---------+----------+----------+------------+--------------+
|   E002    |   3     |     7    |    1     | 2015-01-01 |  2015-02-01  |
+-----------+---------+----------+----------+------------+--------------+
|   E003    |   0     |     1    |    1     | 2015-01-01 |  2015-02-01  |
+-----------+---------+----------+----------+------------+--------------+
|   E004    |   5     |     1    |    0     | 2015-01-01 |  2015-02-01  |
+-----------+---------+----------+----------+------------+--------------+

Quero que todo funcionário ativo receba 2 CLno primeiro dia de cada mês e 1 SLa cada 45 dias automaticamente. Disseram-me que é possível fazer isso usando um cursor, mas não sei.

Existe alguma outra maneira eficiente de fazer isso?

sql-server auto-increment
  • 3 respostas
  • 1392 Views
Martin Hope
Tufan Chand
Asked: 2015-04-25 04:59:20 +0800 CST

Recupere várias linhas da tabela2 com base em uma única linha da tabela1 no SQL Server [duplicado]

  • 1
Essa pergunta já tem resposta aqui :
Concatenar um campo de um para muitos em um único resultado? (1 resposta)
Fechado há 7 anos .

Eu tenho duas tabelas e estou usando o SQL Server.

a estrutura da tabela1 é

Campiagn_Id  Campiagn_Name 
1            test1
2            test2
3            test3

e a estrutura table2 é

Campign_Id  EmalList
1           email_list_1
1           email_list_2
3           email_list_3
1           email_list_4
2           email_list_5
2           email_list_6
3           email_list_7
1           email_list_8

Agora, quero buscar todos os Campiagn_Id e Campiagn_Name de table1e também todos os respectivos EmalListde table2em uma consulta.

Meu resultado ficará assim

Campign_Id   Campiagn_Name    EmailList 
1            test1            email_list_1,email_list_2,email_list_4,email_list_8
2            test2            email_list_5,email_list_6
3            test3            email_list_3,email_list_7

Ou qualquer outra saída sugerida ficará bem

Acho que minha pergunta está bem clara para todos vocês.

sql-server join
  • 1 respostas
  • 13706 Views
Martin Hope
Tufan Chand
Asked: 2015-04-24 04:45:10 +0800 CST

Junte duas tabelas e retorne dados e conte em uma única consulta

  • 6

Eu tenho duas tabelas em um banco de dados SQL Server, uma com duas colunas e outra com quatro:

  1. tbl_email_list

    1. email_list_id int(PK)
    2. email_list_name varchar
  2. tbl_email-details

    1. email_uniq_id int(PK)
    2. email_list_id int(FK)
    3. email_address varchar
    4. blacklist bit

Eu quero recuperar dados em uma consulta que deve retornar

  1. Todas as listas de email de tbl_email_list;
  2. O número total de email_address associado a um email_list_id específico;
  3. O número total de endereços de e-mail na lista de permissões (onde lista negra=0);
  4. O número total de endereços de e-mail na lista negra (onde lista negra=1).
sql-server join
  • 2 respostas
  • 67721 Views
Martin Hope
Tufan Chand
Asked: 2015-02-24 21:35:37 +0800 CST

Duas linhas com valores nulos são mescladas em uma linha sem valores nulos

  • 6

Eu busquei o registro da tabela assim:

Name                 Opp                     Bid                  Pro
----------------------------------------------------------------------
Admin                 2                      NULL                 NULL
Pragnya Sonal         7                      NULL                 NULL
Priyanka Debnath      17                     NULL                 NULL
Sanjeev Sasmal        2                      NULL                 NULL
Subrajeet Sahoo       1                      NULL                 NULL
Pragnya Sonal         NULL                   2                    NULL
Pragnya Sonal         NULL                   NULL                 1

Mas eu quero reordenar esta tabela neste formato:

Admin                 2                      NULL                 NULL
Pragnya Sonal         7                      2                    1
Priyanka Debnath      17                     NULL                 NULL
Sanjeev Sasmal        2                      NULL                 NULL
Subrajeet Sahoo       1                      NULL                 NULL

Alguém pode me ajudar a resolver isso, muito obrigado desde já

sql-server
  • 2 respostas
  • 40658 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