Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / То ли фенечка, то ли грабельки... / 6 сообщений из 6, страница 1 из 1
28.03.2001, 12:10
    #32003620
Василий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
То ли фенечка, то ли грабельки...
На сервере лежит View
Select * From Mytable Where [date]>'01/02/01'.

При моих настройках сервера он читается как - вывести записи начиная со 2 января и работает без проблем.

Делаю в Дельфи ADOTable, connectionstring... и смотрю в грид.
Вижу там записи начиная с 1 февраля.

Откуда уши растут понятно - из Дельфи я конекчусь юзером имеющим на сервере russian language в логине, а на самом сервере работаю админом с english настройкой.
Но ведь вьюха уже сохранённая, давно откомпилированная..., что-же сервер его разбирает, смотрит на логин и заново компилирует? Но это противоречит самому определению сереверных представлений.
А если такие грабли начнут всплывать в давно написанных БД при первом нестандартном коннекте? Так можно и по шее получить.
...
Рейтинг: 0 / 0
28.03.2001, 16:50
    #32003654
То ли фенечка, то ли грабельки...
Помоему дело в региональных настройках
...
Рейтинг: 0 / 0
28.03.2001, 18:28
    #32003660
Дед Маздай
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
То ли фенечка, то ли грабельки...
Да, будет заново компилировать. Что Вас так удивляет? План запроса никогда не будет шариться при различии параметров настройки сред окружения пользовательских сессий, могущих повлиять на ход выполнения запроса. Возьмите какой-нибудь select * from authors и выполните его с 2-х сессий. (Только сначала сделайте DBCC FREEPROCCACHE). В одной перед запросом поставьте set ansi_warnings on, в другой off. А теперь посмотрите select sql, db_name(dbid) from master..syscacheobjects where cacheobjtype = 'Executable Plan' and objtype = 'Prepared', сколько планов получилось. Про это, по-моему, даже в документации сказано. А если не сказано, то все равно здравый смысл должен подсказать. Жизнь наша с вами так устроена, что чудес не бывает. Либо компилировать план вместе с частью среды окружения (ситуация, типичная для хранимых процедур и обычных представлений), либо в предположении, что все они заведомо фиксированы, сиречь, кругом царит сплошной детерминизьм (ситуация хранимых функций и "материалистических" представлений). Кстати, по поводу первой ситуации меня достаточно давно, еще во времена 7.0, один пионэр с ВМК спрашивал, что, мол, как же так, ведь у вас декларирована реентерабельность планов? Но никто и не утверждал, что в памяти хранятся два одинаковых куска кода с разными стеками. Просто здесь такая ситуация, что содержимое стека в действительности влияет на сам код.
...
Рейтинг: 0 / 0
29.03.2001, 17:13
    #32003716
Василий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
То ли фенечка, то ли грабельки...
Эта ситуация с вьюхами (о которой я писал выше) верна и для SP.

Уважаемый Дед Мастдай, я во всём (или почти во всём) согласен с Вашими теоретическими выкладками, но всё же не могу не сделать два замечания:

1. Странно когда один человек запускает ЕМ, открывает там view (без каких либо параметров) и получает некие данные. Затем за эту машину садится другой юзер, открывает тот же самый view (без единого лишнего действия) - и получает совершенно другие данные. Не думаю, что это нормально.

2. Можно открыть любой учебник по mssql и прочитать там радостную агитацию авторов за создание хранимых процедур, поскольку они "уже на сервере", "уже откомпилированы", "уже самый супер"... врут значит проходимцы.
...
Рейтинг: 0 / 0
29.03.2001, 23:02
    #32003724
Дед Маздай
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
То ли фенечка, то ли грабельки...
Уважаемый Василий.
Дела обстоят именно так, а нормально это или нет - к сожалению, личностные оценки, во многом продиктованные привычкой. Я думаю, что нормально, когда end users не запускают EM, а работают с сервером через Вами написанный интерфейс, где учтены подобные нюансы. Несмотря на свою продвинутость, SQL Server - всего лишь программа, которая на данной стадии не способна бегать за Вас за пивом в силу присущих ей объективных ограничений, суть которых, как мне казалось, я объяснил.
По поводу учебников - по-моему, Вы чего-то недопоняли. Когда от клиента поступает запрос, то SQL Server, естественно, прежде, чем бросаться его выполнять, поищет его план в процедурном кэше на предмет не посылал ли клиент его уже незадолго перед этим. Так что с этой точки зрения я, честно говоря, вижу мало разницы между размещением бизнес-логики на сервере и на клиенте. Серверный вариант предпочтителен с точки зрения централизации и управляемости. Напр., с выходом SQL Srv 2000 многие стали держать маски ввода полей и прочие правила форматирования в extended properties. Чтобы клиентская прилада их оттуда считывала и сама ничего не придумывала. К сожалению, иногда это невозможно. На форуме уже обсуждался вопрос, как отлавливать на клиенте изменения в записи. Сейчас это невозможно, поэтому приходится изобретать компоненту промежуточного слоя и все updates гнать через нее. Но как только в след.версии SQL Server научится генерить пользовательские events, чест.слово, я снесу эту dll и вставлю все в триггер.
...
Рейтинг: 0 / 0
30.03.2001, 11:52
    #32003747
Василий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
То ли фенечка, то ли грабельки...
Благодарю за разъяснения.
Всегда рад встрече с интересным человеком.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / То ли фенечка, то ли грабельки... / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]