my query has been running for 30 minutes so far:
SELECT
d.accn_id,
cast(d.load_date as DATE) as LoadDate,
cast (d.final_rpt_date as DATE) as FinalReportDate,
sum(p.paid_amt) as SumPaidAmt,
payors.PAYOR_ID
FROM accn_demographics d
JOIN accn_payments p
ON d.ACCN_ID=p.ACCN_ID
JOIN accn_payors payors
ON payors.X_PAYOR_ID=p.X_PAYMENT_PAYOR_ID
WHERE
p.POSTED = 'y'
AND p.PMT_DATE between '20120401' and '20120430'
GROUP BY
d.accn_id,
d.load_date,
d.final_rpt_date,
payors.PAYOR_ID
before i add this table:
accn_payors
the query took a few minutes, but after adding this table, i am still waiting after 30 minutes.
here are the 3 tables:
USE [zzzDataEOMTestingApril]
GO
/****** Object: Table [dbo].[accn_payors] Script Date: 08/20/2012 13:28:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[accn_payors](
[ACCN_ID] [varchar](40) NULL,
[PAYOR_PRIORITY] [int] NULL,
[PAYOR_ID] [varchar](15) NULL,
[PAYOR_NAME] [varchar](40) NULL,
[GROUP_ID] [varchar](40) NULL,
[PLAN_ID] [varchar](40) NULL,
[SUBSCRIBER_ID] [varchar](40) NULL,
[INSURED_RELATIONSHIP] [varchar](6) NULL,
[INSURED_L_NAME] [varchar](40) NULL,
[INSURED_F_NAME] [varchar](40) NULL,
[INSURED_HOME_PHN] [varchar](40) NULL,
[INSURED_WORK_PHN] [varchar](40) NULL,
[INSURED_ADDR1] [varchar](60) NULL,
[INSURED_ADDR2] [varchar](60) NULL,
[INSURED_CITY] [varchar](60) NULL,
[INSURED_STATE] [varchar](2) NULL,
[INSURED_ZIPCODE] [varchar](10) NULL,
[PAID_IN_FULL] [varchar](1) NULL,
[CLAIM_COMMENT] [varchar](4000) NULL,
[OTHER_INFO1] [varchar](4000) NULL,
[OTHER_INFO2] [varchar](4000) NULL,
[OTHER_INFO3] [varchar](4000) NULL,
[OTHER_INFO4] [varchar](4000) NULL,
[INTERNAL_NOTES] [varchar](4000) NULL,
[SYSTEM_ADDED_PAYOR] [varchar](1) NULL,
[ELIG_OK] [varchar](1) NULL,
[ELIG_STATUS] [varchar](40) NULL,
[ELIG_SERVICE] [varchar](40) NULL,
[ELIG_VERIF_ID] [varchar](15) NULL,
[AUD_REC_ID] [int] NOT NULL,
[INSURED_DOB] [varchar](50) NULL,
[INSURED_SEX] [varchar](3) NULL,
[EMPLOYER_NAME] [varchar](40) NULL,
[EMPLOYER_ADDR1] [varchar](60) NULL,
[EMPLOYER_ADDR2] [varchar](60) NULL,
[EMPLOYER_CITY] [varchar](60) NULL,
[EMPLOYER_STATE] [varchar](2) NULL,
[EMPLOYER_ZIPCODE] [varchar](10) NULL,
[EMPLOYER_COUNTRY] [varchar](40) NULL,
[EMPLOYER_PHONE] [varchar](40) NULL,
[EMPLOYMENT_STATUS] [varchar](40) NULL,
[GROUP_NAME] [varchar](40) NULL,
[X_PAYOR_ID] [int] NULL,
[AUDIT_DATE] [varchar](50) NULL,
[OCCURRENCE_CODE] [varchar](30) NULL,
[INSURED_SSN] [int] NULL,
[OCCURRENCE_CODE_DATE] [datetime] NULL,
[DELAY_REASON_CODE] [varchar](15) NULL,
[CASE_ID] [varchar](60) NULL,
[PAYOR_CODE_TYPE] [varchar](400) NULL,
[AUTH_NUM] [varchar](40) NULL,
CONSTRAINT [PK_accn_payors] PRIMARY KEY CLUSTERED
(
[AUD_REC_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
USE [zzzDataEOMTestingApril]
GO
/****** Object: Table [dbo].[accn_payments] Script Date: 08/20/2012 13:28:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[accn_payments](
[ACCN_ID] [varchar](40) NULL,
[PMT_SEQUENCE] [int] NULL,
[DEPOSIT_ID] [int] NULL,
[DEPOSIT_BATCH_ID] [int] NULL,
[DEPOSIT_BATCH_SEQ] [int] NULL,
[PROC_CODE] [varchar](40) NULL,
[PMT_TYPE] [varchar](40) NULL,
[USER_ID] [varchar](20) NULL,
[NOTE] [varchar](4000) NULL,
[PMT_DATE] [datetime] NULL,
[CHECK_NUM] [varchar](40) NULL,
[RECEIPT_NUM] [varchar](40) NULL,
[ALLOWED_AMT] [float] NULL,
[DEDUCT_AMT] [float] NULL,
[PAID_AMT] [float] NULL,
[COPAY_AMT] [float] NULL,
[POSTED] [varchar](1) NULL,
[BULK] [varchar](1) NULL,
[UNITS_PAID] [int] NULL,
[BILL_AMT_FROM_EOB] [float] NULL,
[PAYMENT_PAYOR_ID] [varchar](15) NULL,
[PRICED_PAYOR_ID] [varchar](15) NULL,
[AUD_REC_ID] [int] NULL,
[X_ACCN_BILLED_PROCEDURE_ID] [int] NULL,
[X_PRICED_PAYOR_ID] [int] NULL,
[X_PAYMENT_PAYOR_ID] [int] NULL,
[CLIENT_PRIMARY_FACILITY_ID] [varchar](15) NULL,
[REMIT_FILE_NAME] [varchar](128) NULL,
[BATCH_POSTED] [varchar](1) NULL,
[DEPOSIT_POSTED] [varchar](1) NULL,
[AUDIT_DATE] [datetime] NULL,
[ACCEPT_ASSIGNMENT] [varchar](1) NULL,
[EXPECT_PRICE_DISCREPENCY_AMT] [float] NULL,
[PRINT_NOTE] [varchar](1) NULL,
[PATIENT_RESP_AMT] [float] NULL,
[EOB] [varchar](40) NULL,
[ICN] [varchar](30) NULL,
[DEPOSIT_NOTE] [varchar](40) NULL,
[NETWORK_ID] [varchar](100) NULL,
[USE_EXPECT_PRICE] [varchar](1) NULL,
[CO_INS_AMT] [float] NULL,
[REMIT_DATE] [datetime] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
USE [zzzDataEOMTestingApril]
GO
/****** Object: Table [dbo].[accn_demographics] Script Date: 08/20/2012 13:28:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[accn_demographics](
[ACCN_ID] [varchar](40) NULL,
[STATUS] [varchar](15) NULL,
[CLIENT_ID] [varchar](15) NULL,
[CLIENT_NAME] [varchar](60) NULL,
[REQ_ID] [varchar](20) NULL,
[DOS] [datetime] NULL,
[SEX] [varchar](3) NULL,
[PT_ID] [varchar](40) NULL,
[ORDERING UPIN] [bit] NULL,
[PT_L_NAME] [varchar](40) NULL,
[PT_F_NAME] [varchar](40) NULL,
[PT_AGE] [varchar](40) NULL,
[DOB] [date] NULL,
[PT_HOME_PHM] [varchar](40) NULL,
[PT_WORK_PHN] [varchar](40) NULL,
[PT_ADDR1] [varchar](60) NULL,
[PT_ADDR2] [varchar](60) NULL,
[PT_ZIPCODE] [varchar](10) NULL,
[PT_CITY] [varchar](60) NULL,
[PT_ST_ID] [varchar](2) NULL,
[PT_SSN] [int] NULL,
[RECEIPT_DATE] [datetime] NULL,
[INDIGENT_PCT] [float] NULL,
[PRICE_DATE] [datetime] NULL,
[EXPECT_PRICE] [float] NULL,
[BILL_PRICE] [float] NULL,
[GROSS_PRICE] [float] NULL,
[DUE_AMT] [float] NULL,
[ACCOUNTING_DATE] [datetime] NULL,
[FINAL_RPT_DATE] [datetime] NULL,
[TIME_OF_SERVICE] [varchar](20) NULL,
[NO_CHARGE] [varchar](1) NULL,
[AUD_REC_ID] [int] NULL,
[ORIGINAL_ACCOUNTING_DATE] [datetime] NULL,
[PT_COUNTRY] [varchar](40) NULL,
[PHLEB_FACILITY] [varchar](40) NULL,
[FASTING_TYPE] [varchar](40) NULL,
[PT_LOCATION] [varchar](40) NULL,
[PHLEB_USER_ID] [varchar](40) NULL,
[PRIMARY_CLIENT_ID] [varchar](15) NULL,
[PHYSICIAN_SOF] [varchar](1) NULL,
[PATIENT_SOF] [varchar](1) NULL,
[STAT] [varchar](1) NULL,
[CALLBACK] [varchar](1) NULL,
[PT_REPORT_COPY] [varchar](1) NULL,
[PT_EMAIL] [varchar](40) NULL,
[PAID_IN_FULL] [varchar](1) NULL,
[CLIENT_STATEMENT_DATE] [datetime] NULL,
[RETRO_BILL_PRICE] [float] NULL,
[PATIENT_TYPE] [varchar](40) NULL,
[REFERRING_UPIN] [bit] NULL,
[PRIMARY_UPIN] [bit] NULL,
[LOAD_DATE] [datetime] NULL,
[TRIP_STOPS] [int] NULL,
[TRIP_MILES] [int] NULL,
[ROUND_TRIP] [varchar](1) NULL,
[TRIP_PATIENT_COUNT] [int] NULL,
[ADMISSION_SOURCE] [varchar](40) NULL,
[EMERGENCY] [varchar](1) NULL,
[ACCIDENT_CAUSE] [varchar](40) NULL,
[PATIENT_MARITAL_STATUS] [varchar](40) NULL,
[ADMISSION_TYPE] [varchar](40) NULL,
[PATIENT_STATUS] [varchar](200) NULL,
[WORPCOMP_CASE_WORKER] [varchar](80) NULL,
[MRO] [varchar](40) NULL,
[X_CLIENT_ID] [int] NULL,
[X_PRIMARY_CLIENT_ID] [int] NULL,
[AUDIT_DATE] [datetime] NULL,
[ORDERING_NPI] [bit] NULL,
[REFERRING_NPI] [bit] NULL,
[PRIMARY_NPI] [bit] NULL,
[CLIENT_PRODUCT] [int] NULL,
[ONSET_DATE] [date] NULL,
[ONSET_TYPE] [varchar](10) NULL,
[ACCIDENT_STATE_ID] [varchar](2) NULL,
[TRADE_DISCOUNT_AMOUNT] [float] NULL,
[RETRO_TRADE_DISC_AMT] [float] NULL,
[PATIENT_PREGNANT] [varchar](1) NULL,
[PATIENT_GRAVIDA] [int] NULL,
[ORDERING_PHYS_NAME] [varchar](80) NULL,
[X_ORDERING_PHYS_ID] [int] NULL,
[REFERRING_PHYS_NAME] [varchar](80) NULL,
[X_ REFERRING_PHYS_ID] [int] NULL,
[PRIMARY_PHYS_NAME] [varchar](80) NULL,
[X_ PRIMARY _PHYS_ID] [int] NULL,
[ADMISSION_DT] [date] NULL,
[ADMISSION_TIME] [varchar](5) NULL,
[DISCHARGE_DT] [date] NULL,
[DISCHARGE_TIME] [varchar](5) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
question how can i speed up this query? are there some indexes that i am missing? why would adding just one table exponentially increase the time it takes to return results for this query? perhaps i should change some datatypes?
Are you sure the join to payor is correct? The payors table has an accnid in it, as well as the payor id.
Try changing your join condition to something like:
Is there another table with the payor information independent of the account?