我有2个表格('键'由大约6个字段组成,'stats'由大约65个字段组成)。如何优化SQL查询?
我想在两个表中插入行而不公开短语文本。我使用这样的东西:
UPDATE Keys SET CommandType = 'ADDED', CommandCode = @CommandCode WHERE
KeyText = @KeyText AND Tab_ID = @TabID AND CommandType = 'DELETED';
INSERT INTO Keys (IsChecked, KeyText, AddDateTime, Tab_ID, KeySource_ID, CommandCode, CommandType)
SELECT 0, @KeyText, datetime(), @TabID, @KeySourceID, @CommandCode, 'ADDED'
WHERE NOT EXISTS (SELECT 1 FROM Keys WHERE Tab_ID = @TabID AND KeyText = @KeyText);
INSERT INTO Statistics (Key_ID)
SELECT ID FROM Keys WHERE KeyText = @KeyText AND Tab_ID = @TabID AND (CommandType IS NULL OR CommandType <> 'DELETED') AND
NOT EXISTS (SELECT 1 FROM Statistics WHERE Key_ID = (SELECT ID FROM Keys WHERE KeyText = @KeyText AND Tab_ID = @TabID AND (CommandType IS NULL OR CommandType <> 'DELETED') LIMIT 1));
我该如何优化它?我为这个查询字段中使用的所有索引创建索引。也许你可以推荐我一些解决方案?
感谢您的帮助和抱歉,我的英语不好。
什么是需要优化的?需要太长时间才能插入? – Randy
您是否尝试过SQL Profiler? –
是啊!问题出在我的表格的糟糕索引上。我重构它,并用静态内容替换一些查询参数,它效果很好! 感谢您的帮助! – Dmitriy