Google bigquery Google Bigquery使用substr,从不返回结果
我有一个表,它有两组数据,一组数据有如下信息 类型|名称| Id 包装盐酸伪麻黄碱口服片120 MG | 110 包装盐酸伪麻黄碱口服片60 MG | 111 药品名称|盐酸伪麻黄碱| 112 我想做的是将PackagedDrug与DrugName概念连接起来,因此获取PackagedDrug类型的所有ID,其名称与DrugName类型的名称匹配。如果我在下面的查询中硬编码DrugName的名称,它会立即运行,但是如果我去掉硬编码,它就会继续运行。你能给我建议一些合适的方法来加速这个大查询吗 选择a.MSC\u ID MSC\u ID、a.MSC\u CONcept\u type、a.CONcept\u ID、a.CONcept\u name、b.CONcept\u nameGoogle bigquery Google Bigquery使用substr,从不返回结果,google-bigquery,substr,Google Bigquery,Substr,我有一个表,它有两组数据,一组数据有如下信息 类型|名称| Id 包装盐酸伪麻黄碱口服片120 MG | 110 包装盐酸伪麻黄碱口服片60 MG | 111 药品名称|盐酸伪麻黄碱| 112 我想做的是将PackagedDrug与DrugName概念连接起来,因此获取PackagedDrug类型的所有ID,其名称与DrugName类型的名称匹配。如果我在下面的查询中硬编码DrugName的名称,它会立即运行,但是如果我去掉硬编码,它就会继续运行。你能给我建议一些合适的方法来加速这个大查询吗 选
from
(select MSC_id, MSC_CONcept_type, concept_id, concept_name
FROM [ClientAlerts.MSC_Concepts]
where MSC_CONcept_type in ('MediSpan.Concepts.PackagedDrug') ) a
CROSS JOIN
选择MSC\u概念类型、概念id、概念名称、长度概念名称len
来自[ClientAlerts.MSC_Concepts]
其中MSC_CONcept_输入'MediSpan.Concepts.NamebasedClassification.DrugName'
-“盐酸伪麻黄碱”中的概念和名称
b
其中substra.concept\u name,1,b.len+''=b.concept\u name
from
(select MSC_id, MSC_CONcept_type, concept_id, concept_name
FROM [ClientAlerts.MSC_Concepts]
where MSC_CONcept_type in ('MediSpan.Concepts.PackagedDrug') ) a
CROSS JOIN
谢谢,
萨维塔这与BigQuery本身无关。当您硬编码时,您的值被过滤得更快,因为它不必检查每一行,因为它会查找硬编码的值 如果不使用硬编码的值,它将查看更多的行,比较第一个查询和第二个查询中的所有行。老实说,如果您在这里正确地描述了您的用例,我不认为有任何方法可以更快地做到这一点
但我确实想到了一个问题。为什么你有一个类型。看起来应该是两个不同的表。您好,我创建了一个类型的表作为另一个表,但它仍然很慢。@SavitaMhetar,我从来没有说过创建两个不同的表会使它变快。这肯定会让它更快。当您进行连接时,需要了解的一件事是,系统试图使行的每一个可能的组合。。。。每张桌子上有多少行?这可能只是因为您有太多的行,所以系统需要一些时间一个表有250万行,另一个表有78000行。