Проблема: у меня есть события с составным ключом. Для упрощения, скажем, ключ:
OS + имя хоста + somedetail
Некоторые примеры могут быть:
WIN+SERVER1+DB+PAY
WIN+SERVER2+CPU_HIGH
У нас есть различные команды, которые могут подписаться на них с помощью подстановочной строки SQL. Например, администратор Windows может подписаться на WIN+%
, а администратор БД может подписаться на WIN+%+DB+%
.
Мы сделали стержень для наших собственных спинок, не прибегая к этому с самого начала, но это был классический случай, чтобы сначала он работал, а затем улучшал его, когда мы можем. По соображениям производительности я хочу минимизировать количество перекрывающихся подписок. Данные представлены как в Excel, так и в таблице MS SQL. Проблема в том, что хотя SQL-сервер согласится
WIN+%
- это LIKE WIN+SERVER1+DB+PAY
, похоже, он не согласен с тем, что WIN+%
- это LIKE WIN+%+DB+%
в SQL SELECT
. И большинство решений, которые я могу использовать в Google, позволяют использовать подстановочные знаки только с одной стороны.
Я думаю, что я могу кое-что из этого, сломав одну сторону сравнения подстановочного знака (который может быть более сложным) в каждом подстановочном знаке.
Например WIN+%+DB+%
становится SELECT field WHERE field LIKE 'WIN+%" and field LIKE '%+DB+%'
Кажется, что это довольно быстро сломается, хотя, возможно, я мог бы составить список вероятных случаев.
Я работаю над книгой о регулярных выражениях и подозреваю, что они могут быть полезны, как только я получу лучший контроль. У меня есть хороший набор инструментов на сервере с доступом к большему количеству, поэтому я открыт для любых решений на большинстве платформ.
В случае, если кому-то интересно - каждый матч дает билет, поэтому на 2 матча будет получено 2 билета, и они могут не пересекаться, вызывая дополнительную работу. Это происходит в нескольких центрах обработки данных, и у нас есть несколько тысяч подписок - в основном, автоматически генерируемых «решением проблемы». С другой стороны, это заставляет меня работать.