Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
优化使用50个字符字符串作为键的联接-SAS SQL_Sql_Performance_Join_Sas_Substr - Fatal编程技术网

优化使用50个字符字符串作为键的联接-SAS SQL

优化使用50个字符字符串作为键的联接-SAS SQL,sql,performance,join,sas,substr,Sql,Performance,Join,Sas,Substr,我正在尝试在一个只有8000行的小表和一个使用电子邮件地址作为键的至少有几百万行的表之间进行左连接。8000行表中电子邮件为50个位置字符串,大型表中电子邮件为255个位置 我收到了I/O错误-所以-如果我在长电子邮件地址上使用substr将其减少到50个位置(与其他表相同),会有帮助吗?还是在连接中不会有任何区别 如果有意义,那么我需要使用两个SQL步骤吗?一个是创建新变量,另一个是使用创建的变量作为键进行连接?除了substr(old_email,1,50)之类的语句外,我还需要使用某种长度

我正在尝试在一个只有8000行的小表和一个使用电子邮件地址作为键的至少有几百万行的表之间进行左连接。8000行表中电子邮件为50个位置字符串,大型表中电子邮件为255个位置

我收到了I/O错误-所以-如果我在长电子邮件地址上使用substr将其减少到50个位置(与其他表相同),会有帮助吗?还是在连接中不会有任何区别


如果有意义,那么我需要使用两个SQL步骤吗?一个是创建新变量,另一个是使用创建的变量作为键进行连接?除了substr(old_email,1,50)之类的语句外,我还需要使用某种长度或格式语句吗?

您的大表是否以任何方式编制了索引?我不知道,但我怀疑emailOk,这两个数据集都是SAS数据集还是非SAS服务器上的任何数据,即SQL/Oracle?您知道是否可以使用Pass-Through吗?SAS越小,db2越大。使用宏变量将电子邮件列表提供给查询,以减少处理。单个宏变量的字符限制为64k,因此可以创建多个宏变量,也可以使用包含的链接中的解决方案。