Прокси вперед в Сквиде через другой общедоступный IP в зависимости от локального порта

select * from core_person where last_name = 'turner' 

Делает веб-приложение, случайно работает:

select * from core_person where last_name = @last_name;

и передачи в @last_name переменной типа nvarchar? Это - очень общая грубая ошибка с ADO.NET и может закрадываться незамеченный с простым sqlCommand.Parameteres.AddWithValue("@last_name", someStringVariable);. Результаты имеют катастрофические последствия, поскольку правила Приоритета типов данных ясно указывают, что comparuiison должен произойти между типами NVARCHAR, таким образом, запрос эквивалентен select * from core_person where cast(last_name as NVARCHAR(...)) = @last_name; и это игнорирует любой существующий индекс на last_name и вызывает сканирование таблицы. Выполнение подобного запроса от абсолютно прекрасных выполнений окна SSMS, поскольку преобразование не вызывается в этом случае.

Это - просто выстрел в темноте и является всем, что можно обеспечить, учитывая полное отсутствие расследования с Вашей стороны. Я рекомендую следовать за хорошо установленной методологией поиска и устранения неисправностей производительности, как Waits и Очереди.

2
задан 22 July 2014 в 20:31
1 ответ

Да, это возможно с Squid.

http_port 3128
http_port 3129
http_port 3130

acl port1 myport 3128
acl port2 myport 3129
acl port3 myport 3130

tcp_outgoing_address x.x.x.1 port1
tcp_outgoing_address x.x.x.2 port2
tcp_outgoing_address x.x.x.3 port3

Если у вас разные шлюзы на каждый IP-адрес вам также необходимо настроить маршрутизацию от источника:

ip rule add from x.x.x.1 table 10
ip rule add from x.x.x.2 table 11

ip route add table 10 default via GW1
ip route add table 11 default via GW2

ip route add default via GW3

В squid.conf важно установить:

server_persistent_connections off

Или мой процедурный модуль не будет '

4
ответ дан 3 December 2019 в 10:12

Теги

Похожие вопросы