我有一个执行缓慢的查询,希望有更多SQL知识的人能够帮助我提高性能:
我有两个表:Source和Common。我加载一些数据,其中包含日期、时间和字符串(即服务器名称),以及其他一些信息。
Source表可以包含40k+行(它有30个左右的列,包括int、date、time和一些varchar(255)/(Max)类型)。
我使用以下查询来删除Common中与Source相同的数据:
'Delete from Common where convert(varchar(max),Date,102)+convert(varchar(max),Time,108)+[ServerName] in (Select convert(varchar(max),[date],102)+convert(varchar(max),time,108)+ServerName from Source where sc_status < 300)'
Source字段的格式如下:
- ServerName varchar(255),例如SN1234 - Date varchar(255),例如2012-05-22 - Time varchar(255),例如08:12:21
Common字段的格式如下:
- ServerName varchar(255),例如SN1234 - Date date,例如2011-08-10 - Time time(7),例如14:25:34.0000000
谢谢。
我有两个表:Source和Common。我加载一些数据,其中包含日期、时间和字符串(即服务器名称),以及其他一些信息。
Source表可以包含40k+行(它有30个左右的列,包括int、date、time和一些varchar(255)/(Max)类型)。
我使用以下查询来删除Common中与Source相同的数据:
'Delete from Common where convert(varchar(max),Date,102)+convert(varchar(max),Time,108)+[ServerName] in (Select convert(varchar(max),[date],102)+convert(varchar(max),time,108)+ServerName from Source where sc_status < 300)'
Source字段的格式如下:
- ServerName varchar(255),例如SN1234 - Date varchar(255),例如2012-05-22 - Time varchar(255),例如08:12:21
Common字段的格式如下:
- ServerName varchar(255),例如SN1234 - Date date,例如2011-08-10 - Time time(7),例如14:25:34.0000000
谢谢。