我有一個緩慢的表演查詢,並希望有人在SQL更多的知識也許能幫助我提高性能:刪除與WHERE - 日期,時間和字符串比較 - 很慢
我有2個一個源和一個普通的表,我加載一些數據,其中包含一個日期,一個時間和字符串(這是一個服務器名稱),加上一些..
源表可以包含40k +行(它有30個奇數列(255)/(最大)
我使用下面的查詢來刪除來自Common中的任何數據:
'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)'
的源字段是格式爲:
- 服務器名的varchar(255)IE SN1234
- 日期VARCHAR(255)IE 2012- 05-22
- 時間VARCHAR(255)IE八時12分21秒
的通用字段是格式爲:
- 服務器名的varchar(255)IE SN1234
- 日期日期IE 2011-08-10
- 時間時間(7)即 14:25:34.0000000
感謝
哪個表是哪個?兩個標籤都說'Source' ...以及爲什麼一張表將日期/時間數據存儲爲大量字符串?他們的確切格式是什麼?我們無法猜測這些事情。請向我們展示一些示例數據... –
爲什麼在日期和時間字段中使用varchar(255)? – MichelZ
由於logparser和我們使用它的方式,Source表將這些存儲爲varchars。我更新了公共表格格式的帖子。 也在旁邊添加了一個示例。希望這有助於 – TomEaton