sql-server - 多连接查询超时问题
问题描述
我在搜索其他问题时找不到这个。我正在尝试进行一系列连接,没有什么非常复杂的。问题是我继续收到错误:
“消息 15884,级别 16,状态 1,行 110 分布式查询超时已过期。在分布式操作完成之前,超时期限已过。”
我在 Azure 上使用 SSMS。最终,我试图在数据库中获取 6 个人的所有记录。根据我完成的其他查询,它应该只返回大约 2500 条记录。问题是(我认为)我加入的观点在小端有数千条记录,在大端有数十亿条记录。我无权访问表本身,只能查看并且无法写入数据库。所以不幸的是,我不能只做一张小桌子,然后再一步合并所有东西。
到目前为止的代码如下。这可能是我尝试的第 10 次迭代。最终我放弃了条件,只输入了我想要的 PatientID。
我在做什么(或不做什么)导致这件事没有完成?
SELECT
Dx.ClaimId
,Dx.PatientId
,Patient.PatientGender
,patient.PatientBirthYear
,Patient.PatientZip3
,Dx.Npi
,HCP.[HCP Last Name]
,HCP.[HCP Specialty]
,HCP.[HCP Practice Location]
,HCP.[HCP State]
,HCP.POSTCODE_CD
,Dx.DiagnosisCode
,Dx.DiagnosisTypeCode
,Px.ProcedureCode
,Px.ReferringNpi
,HCP2.[HCP Last Name]
,HCP2.[HCP Specialty]
,HCP2.[HCP Practice Location]
,HCP2.[HCP State]
,HCP2.POSTCODE_CD
FROM [Nimbus].[mxs].dx DX
LEFT JOIN [Nimbus].[mxs].Px PX ON Dx.ClaimId = PX.ClaimId and (DX.PatientId =106753907
OR DX.PatientId = 240884005
OR DX.PatientId = 811094164
OR DX.PatientId = 473903167
OR DX.PatientId = 1396954203
OR DX.PatientId = 879348405)
LEFT JOIN [Nimbus].[mdm].HCPInfo HCP on HCP.[HCP NPI] = Dx.Npi
LEFT JOIN [Nimbus].[mdm].HCPInfo HCP2 on HCP.[HCP NPI] = Px.ReferringNpi
LEFT JOIN [Nimbus].[mxs].Patient Patient on Patient.PatientId = Dx.PatientId and (DX.PatientId =106753907
OR DX.PatientId = 240884005
OR DX.PatientId = 811094164
OR DX.PatientId = 473903167
OR DX.PatientId = 1396954203
OR DX.PatientId = 879348405)
解决方案
推荐阅读
- python-3.x - 在 tkinter 中循环运行 matplotlib 图像
- tensorflow - TensorFlow 卷积神经网络与训练生成器的拟合误差
- testcontainers - 如何在 Testcontainers MySQL 中配置时区
- html - 通过 maven 运行时未生成 Cucumber HTML 报告
- javascript - 很想从弹出的 iframe 中获取内容?
- python - Python - 读取多个excel文件并打印文件夹中的数据
- reactjs - 如何使用 React 传递多个参数?
- rest - 运行另一个测试用例,循环遍历属性(getValues &SetValues) - Groovy 脚本
- c++ - 如何查看在另一个程序中调用的函数
- c# - 编写时在 CsvHelper 中转换或过滤成员