решено - посмотрите ниже в конце объяснения
Я испытываю странное поведение при чтении набора результатов из базы данных в вызывающем методе.Сортировка строк отличается от того, что должна возвращать база данных.
Моя ферма:
- сервер базы данных: sql server 2008 на 64-битной WinServer 2008
- веб-сервер: пара нагрузоксбалансированный 64-разрядный WinServer 2008 под управлением IIS 7
Приложение работает в пуле приложений v4.0, настроенном на включение 32-разрядных приложений
Вот описание проблемы:
- вызывается хранимая процедура,который возвращает результирующий набор, отсортированный по определенному столбцу
- я могу видеть через профилировщик вызов SP, если я запускаю инструкцию, я вижу правильную сортировку
- вызывающая страница получает результаты, и перед любыми журналами дальнейшей обработкистроки сразу после выполнения SP
- результаты находятся в совершенно другом порядке (я даже не могу понять, отсортированы ли они каким-либо образом)
Некоторые подробности о хранимой процедуре:
- этовызывается кодом с использованием SqlDatAdapter
- он также имеет выходное значение (количество строк), которое читается правильно
- чтоПоле сортировки, которое должно использоваться, передается в качестве параметра - использует временные таблицы для сбора данных и выполнения требуемой сортировки
Есть идеи о том, что я могу проверить?Один и тот же код и одна и та же база данных работают правильно в тестовой среде, 32 бита и не сбалансированы по нагрузке.
решено - проблема в логике хранимой процедуры;в последнем выборе у меня было внутреннее соединение к столбцу, и результирующая сортировка (но только в производственной базе данных) была в этом поле по убыванию, а не в желаемом столбце.Модифицирована логика, теперь все работает.Я все еще должен понять, где настоящая причина такого поведения только в одной базе данных, а не против другой.Может быть, некоторые индексы ...