1) Есть неиндексное поле, куда надо почти всегда записывать текст до 10 символов, но иногда очень редко до 1000 символов. Имеет ли смысл использовать текстовый BLOB вместо VARCHAR(1000)?
2) Часто выполняются запросы с фильтром, где на самом деле фильтр используется редко (параметр UserLogin пустой)
Имеет ли смысл его оптимизировать так?
Или может лучше вообще удалять строку WHERE при пустом параметре?
2) Часто выполняются запросы с фильтром, где на самом деле фильтр используется редко (параметр UserLogin пустой)
SELECT Users.* FROM Users WHERE Users.UserLogin LIKE :UserLogin
ParamByName('UserLogin').AsString := '%' + UserLogin + '%';
Имеет ли смысл его оптимизировать так?
SELECT Users.* FROM Users WHERE (:UserLogin IS NULL) OR (Users.UserLogin LIKE :UserLogin)
if UserLogin<>'' then ParamByName('UserLogin').AsString := '%' + UserLogin + '%';
Или может лучше вообще удалять строку WHERE при пустом параметре?