問題
場合によっては、データベースがこのクエリの処理に多くの時間を費やしていることに気づくかもしれません。
SELECT fileEntryId, groupId, companyId, userId, userName, createDate, modifiedDate, classNameId, classPK, repositoryId, folderId, treePath, name, extension, mimeType, title, description, extraSettings, fileEntryTypeId, version, size_, readCount, smallImageId, largeImageId, custom1ImageId, custom2ImageId, manualCheckInRequired FROM DLFileEntry WHERE (smallImageId = 1) OR (largeImageId = 1) OR (custom1ImageId = 1) OR (custom2ImageId = 1)
WHEREに4つのOR句があるので、表のフルスキャンを行います。 これは実際に影響を与えることができます。
決議
このクエリを実行する必要はないかもしれません。 役に立つかどうかをテストするには、このクエリを実行します。
select count(*) from DLFileEntry where custom2ImageId > 0;
select count(*) from DLFileEntry where custom1ImageId > 0;
select count(*) from DLFileEntry where largeImageId > 0;
select count(*) from DLFileEntry where smallImageId > 0;
すべてのクエリが結果として 0 を返す場合、元のクエリは有用ではないので、このプロパティを変更することで使用量を減らすことができます。
web.server.servlet.check.image.gallery
そして、これを偽物と設定する。