Можно в таблице tbl создать поле в котором хранить checksum(tbl.date,tbl.text,tbl.size) и сделать по этому полю индексацию.
Если checksum дает много коллизий можно попробовать другой хэш, в MSSQL например их вот сколько вариантов:
MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512
https://docs.microsoft.com/ru-ru/sql/t-sql/functio...
Но хэш хорош только когда нужно ответить на вопрос = или <>, а за другими условиями все равно придется в поля таблицы идти.
У меня есть кейс, где нужно искать совпадения по 17 аналитикам и там такой способ ускорил поиск в 10 - ки раз по сравнению с обычным поиском по куче полей, в вашем случае всего 3 поля и наверное join по полям и наличие селективного индекса хотя бы по одному из них уже достаточно.
По полю с varchar(1000) лучше не делать индекса, а по двум другим вполне можно.