|
|
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
anatoleech Должно быть "Применено-к, применено-из". Используется "Применено-из". Терминологию осваивать нет резона, да и некогда. При работе с sqlной базой NAV, с SQL Раз должно быть - делайте каким то образом (каким не знаю и вряд ли это поддерживается, хотя всё возможно) при формировании выборки хинт по "нужному" индексу в Nav ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:49 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
GloryanatoleechGloryanatoleech Не-не-не, тут никакого коннекта не SET, это не вызов процедур, это выборка, которая производится навиженом из своей же базы данных. Это как - запрос выполняется, а коннекта к серверу нет ? А как тогда без коннекта запрос вообще попадает на сервер ? Потому что это и есть сервер навижена. Навижен шурует в своей же базе, своими же средствами, он к ней уже подключен. Вряд ли смогу внятно более объяснить - это чёрный ящик. Какой нафиг ящик Нельзя выполнить никакой команды на MSSQL без создания коннекта к нему Чёрный нафиг ящик. Коннект создаёт NAV, при открытии БД клиентом. Как это происходит - неведомо. Короче говоря, никаких специальных действий для этого делать не нужно. У нас большая проблема из-за различной терминологии - Вы с NAV не знакомы, а я SQL умею только поверхностно администрировать. Прошу поэтому проявить терпение. Несмотря на то, что NAV умеет жить на SQL-сервере, это никак не влияет на среду разработки и поведение клиента NAV. Поэтому SQL я почти не знаю, хотя с ADO бывает что работаю - например, если надо выполнить хранимую процедуру. Так вот, в случае использования ADO - да, надо создавать connection, как положено. А в моём случае - я пишу код в NAV, а что он там потом с ним делает - никогда задумываться не приходилось, потому что такое поведение вижу впервые за 5 лет практики. Прошу простить, что я не гуру в SQL, и помочь в решении этой проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:51 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
anatoleech У нас большая проблема из-за различной терминологии - Вы с NAV не знакомы, а я SQL умею только поверхностно администрировать. Прошу поэтому проявить терпение. Несмотря на то, что NAV умеет жить на SQL-сервере, это никак не влияет на среду разработки и поведение клиента NAV. Поэтому SQL я почти не знаю, хотя с ADO бывает что работаю - например, если надо выполнить хранимую процедуру. Так вот, в случае использования ADO - да, надо создавать connection, как положено. А в моём случае - я пишу код в NAV, а что он там потом с ним делает - никогда задумываться не приходилось, потому что такое поведение вижу впервые за 5 лет практики. Прошу простить, что я не гуру в SQL, и помочь в решении этой проблемы. Вы какую область собираетесь обсуждать в данной теме - все же MSSQL или Navision ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:54 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
GloryanatoleechПри работе с sqlной базой NAV, с SQL обычно приходится иметь дело просто на уровне администрирования. Т.е. вы сидите в какой-то утилите Navison и считаете, что она вам показывает то, что действительно происходит на MSSQL сервере ? Ну как бы да. И что самое удивительное - показывает. За "какую-то утилиту" - ей-богу, спасибо, чтоб так опускали Microsoft Dynamics NAV я ещё ни разу не видел, надо будет запомнить, фраза шикарна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:55 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
anatoleechНу как бы да. И что самое удивительное - показывает. За "какую-то утилиту" - ей-богу, спасибо, чтоб так опускали Microsoft Dynamics NAV я ещё ни разу не видел, надо будет запомнить, фраза шикарна.Я тоже первый раз слышу про эту утилиту, например. Так что пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:57 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
_djХомяГanatoleech Должно быть "Применено-к, применено-из". Используется "Применено-из". Терминологию осваивать нет резона, да и некогда. При работе с sqlной базой NAV, с SQL Раз должно быть - делайте каким то образом (каким не знаю и вряд ли это поддерживается, хотя всё возможно) при формировании выборки хинт по "нужному" индексу в Nav Собственно, это и делает оператор SETCURRENTKEY - указывает ключ для сортировки и фильтрации. В SQL должен использоваться аналогичный ключ, создаваемый NAV в SQL при установке галки "Maintain SQL index" в списке ключей таблицы. Я так понимаю, что передаваемый SELECT, содержащий ORDER BY, соответствующий выбранному ключу, как раз-таки должен побудить SQL использовать этот ключ (поправьте, если это не так и ORDER BY выполняет функцию, отличную от выбора ключа). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:58 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
> Самое интересное, что если этот же запрос выполнить непосредственно в > SQL, результаты возвращаются моментально. а, кстати, план какой в этом случае получается? как план получить тут сказано: http://www.sql.ru/faq/faq_topic.aspx?fid=393 Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 16:58 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
daw > Самое интересное, что если этот же запрос выполнить непосредственно в > SQL, результаты возвращаются моментально. а, кстати, план какой в этом случае получается? как план получить тут сказано: http://www.sql.ru/faq/faq_topic.aspx?fid=393 План это не вот это, случайно? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 17:01 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
Воттераз А если заменить это Код: plaintext Код: plaintext p.s. по Навижну не спец Авоттедва Вы можете как-нибудь управлять параметрами подключения из Навижна? Только Сервер+БД или доступны ещё какие параметры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 17:01 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
anatoleechЯ так понимаю, что передаваемый SELECT, содержащий ORDER BY, соответствующий выбранному ключу, как раз-таки должен побудить SQL использовать этот ключ (поправьте, если это не так и ORDER BY выполняет функцию, отличную от выбора ключа). Всё зависит от стратегии выбранной оптимизатором , которая направлена на уменьшение "стоимости" (накладных расходов). Опять таки не понятно - что передаётся на сервер (это надо смотреть профайлером - серверная утилита) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 17:03 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
> План это не вот это, случайно? этот я уже видел. по-моему, он вполне оправдан. ну, разве что вы попали в ситуацию, когда скан кластерного индекса, на самом деле, лучше, чем поиск по некластерному + букмарк лукап. вы утверждаете, что "если этот же запрос выполнить непосредственно в SQL, результаты возвращаются моментально." непосредсвенно в SQL - это вы query analyser в виду имеете? вот и интересно сравнить планы. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 17:05 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
любитель навижнаВоттераз А если заменить это Код: plaintext Код: plaintext p.s. по Навижну не спец Авоттедва Вы можете как-нибудь управлять параметрами подключения из Навижна? Только Сервер+БД или доступны ещё какие параметры? По раз - не выйдет, потому что порядок полей в ключе строго фиксированный, это надо создавать ещё один ключ, а это проблематично по административным причинам (требование клиента "ключи не трогать"). По два - никак. При подключении только сервер, БД, тип подключения (TCP и т.д.), тип аутентификации (БД/windows), логин да пароль. Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 17:06 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
anatoleechПри работе с sqlной базой NAV, с SQL обычно приходится иметь дело просто на уровне администрирования.Ну вот я про это и говорю - для администрирования нужен администратор. Нужно посмотреть, что именно шлёт NAV сиквелу, какие настройки коннектов, почему такая разница при запросах из NAV и из SSMS, какие планы запросов, не поможет ли обновление статистики, посмотреть на рекомендации SSMS при анализе планов. Это всё и делает администратор, DBA, а у вас такого нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 17:11 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
anatoleechПо раз - не выйдет Я таки дико извиняюсь за настойчивость, но Вы пробовали? Enterprise Manager'ом пользоваться умеете? В части открыть список таблиц и найти нужную? (да/нет) И ещё. Судя по всему Вы сейчас на тестовой БД. Такая ситуация и на тесте и в проме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 17:14 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
Как вариант, просто обновить статистику по базе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 17:16 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
BalbidonКак вариант, просто обновить статистику по базе? Делали. Не помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 17:21 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
любитель навижнаanatoleechПо раз - не выйдет Я таки дико извиняюсь за настойчивость, но Вы пробовали? Enterprise Manager'ом пользоваться умеете? В части открыть список таблиц и найти нужную? (да/нет) И ещё. Судя по всему Вы сейчас на тестовой БД. Такая ситуация и на тесте и в проме? Не пробовал, потому что это повлечёт за собой перестройку ключа, что недопустимо (он используется много где, и должен быть). Либо создание нового ключа. А нужно использовать имеющийся. Размер базы не располагает к экспериментам, а на проме проверить это нереально. Но объект в проме такой же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 17:27 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
daw и _djХомяГ в 16:34 вам уже дали исчерпывающий ответ. Почитайте их топики еще раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 17:34 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
Кто просил план запроса при выполнении запроса напрямую из SQL: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 17:48 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
anatoleechКто просил план запроса при выполнении запроса напрямую из SQL: это вот: [Основная БД для тестирования$Товар Книга Применения].[$6] что за индекс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 18:10 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
и, вообще, что там за индексы есть? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 18:24 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
dawя сильно подозреваю, что строк, для которых "Примен.-к Операции Но."<>0 гооораздо больше, чем тех, для которых "Примен.-из Операции Но."=30195 поправьте, если это не так. а если так, то эффективнее будет индекс, где "Примен.-из Операции Но." стоит первым в списке ключевых столбцов. Скорее всего всё именно так. Вот только не имеет никакого значения, в какой последовательности стоят условия фильтрации во фразе Where SQL-запроса. Оптимизатор MS SQL построит один и тот же план выполнения запроса руководствуясь собственными "соображениями" по поводу селективности тех или иных индексов. Вообще, какие-либо явные указания оптимизатору запросов в виде хинтов, какими индексами и каким образом он должен пользоваться, в тексте SQL-запроса я не вижу. Если SQL-запрос с тем же самым синтаксисом из Query Analysier выполняется моментально, значит проблема не на стороне MS SQL Server, а либо на стороне NAV, либо где-то "в промежутке" между ними. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 09:28 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
anatoleech, предыдущий мой пост справедлив только в том случае, если на MS SQL Server уходит именно тот самый запрос, текст которого сформировался в NAV. Однако, у меня есть сомнения по этому поводу. Необходимо запустить Profiler (это что-то вроде "снифера" для MS SQL Server) и "прослушать" сам SQL-сервер, увидев глазами собственно то, что приходит на MS SQL Server. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 09:34 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
Какая версия Нава и SQL? Вообще, строго говоря, клиент Нава работает через серверные курсоры. На сервер SQL передается что-то вроде (на примере расчета сифт полей): Код: plaintext 1. 2. 3. 4. Код: plaintext 1. Код: plaintext 1. Код: plaintext 1. Не верьте монитору клиента и особенно его счетчикам времени, посмотрите профайлером, какой код передается на SQL сервер. Не исключено, что проблема совсем не в этом запросе. Вариантов множество: - locktable в следующей строчке кода и повышения уровня изоляции до read commited во всех запросах последующих операциях find('-') и next() - в купе с неправильно выбраным сервером ключем (криво поставленным в Наве фильтрам) приведет к массовой блокировке. - банальный modify тоже приводит к перезапросу текущей с повышением уровня изоляции до read commited. Есть уверенность что записи в этот момент не блокированы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 10:28 |
|
||
|
NAV, SQL 2000 и оптимизатор запросов
|
|||
|---|---|---|---|
|
#18+
anatoleech_djХомяГanatoleech Должно быть "Применено-к, применено-из". Используется "Применено-из". Терминологию осваивать нет резона, да и некогда. При работе с sqlной базой NAV, с SQL Раз должно быть - делайте каким то образом (каким не знаю и вряд ли это поддерживается, хотя всё возможно) при формировании выборки хинт по "нужному" индексу в Nav Собственно, это и делает оператор SETCURRENTKEY - указывает ключ для сортировки и фильтрации. В SQL должен использоваться аналогичный ключ, создаваемый NAV в SQL при установке галки "Maintain SQL index" в списке ключей таблицы. Я так понимаю, что передаваемый SELECT, содержащий ORDER BY, соответствующий выбранному ключу, как раз-таки должен побудить SQL использовать этот ключ (поправьте, если это не так и ORDER BY выполняет функцию, отличную от выбора ключа).Мда... С такой терминологией соваться на форум по MS SQL, пожалуй, действительно не стоит... :) И пытаться решать подобные проблемы без специалиста, который разбирается в MS SQL, в общем-то, сродни хождению по краю пропасти. Попытаюсь помочь, чем смогу. Прежде всего, "ключ" в терминологии MS SQL - это не совсем то (а точнее, совсем не то) понятие, которым пытаетесь оперировать Вы. Ключи в MS SQL бывают двух видов - первичный (Primary key) и вторичный (Foregn key). Первичный ключ позволяет однозначно идентифицировать запись в конкретной таблице. Создание первичного ключа сопровождается созданием уникального индекса к данной таблице. Вторичный ключ - это ссылка на запись первичного ключа, то есть на конкретную запись таблицы. Совокупности Primary key - Foregn key создаются для взаимной логической связки нескольких таблиц по некоторым полям. При создании таких связок можно дать указание MS SQL Server обеспечить логическую целостность информации с помощью DRI (Declarative Referential Integrity). То есть, встроенного в MS SQL функционала по обеспечению ссылочной целостности. При попытке удаления записи из таблицы, на которую ссылаются другие таблицы, DRI позволяет выполнить одно из следующих действий: а) Отказаться удалять запись, если в какой-то другой таблице имеются записи, ссылающиеся на удаляемую (сгенерив ошибку) б) Вместе с удаляемой записью из данной таблицы удалить также записи из смежных таблиц, которые ссылаются на удаляемую и благополучно завершить операцию в) Удалить запись из данной таблицы, не проверяя, имеются ли на нее ссылки из других таблиц В процессе использования таблиц этот функционал "просто работает", никаких дополнительных указаний SQL-серверу по тому, как им следует пользоваться, как правило, в SQL-запросах не содержится. Теперь два слова об "индексах". В Fox, DBase, Clipper и т.п. РСУБД на заре их зарождения не имелось функционала работы с SQL-запросами. Они содержали свой собственный синтаксис и свои собственные правила обработки данных. В их структуре также создавались "индексы" и так же имелись "данные", но обработка данных производилась с явным указанием, какие индексы следует использовать при выборке данных. То есть, там изначально выдавалась команды: 1. Воспользоваться таким-то заранее созданным индесом (вспомогательной структурой ссылок на таблицу исходных данныхз) 2. Выбрать записи из таблицы данных, "глядя на них" как бы через индекс, на записи которого наложено определенное условие фильтрации. 3. Вернуть результат, который можно обработать по одной записи Сдается мне, что Вы ожидаете чего-то подобного от MS SQL Server. Но он работает совершенно иначе. "Индекс" для него - это структура, как правило, для его "внутреннего" использования. Какими индексами и в каких случаях пользоваться, он принимает решение САМ , исходя из имеющихся индексов, заранее созданных по полям тех или иных таблиц и исходя из накопленных "статистик" (то есть данных о селективности) каждого индекса. В 99.99% случаев SQL-серверу не требуется давать никаких указаний по поводу того, какими индексами он должен пользоваться, потому что оптимизатор запросов у MS SQL Server в достаточной степени интеллектуален, чтобы выбрать наиболее оптимальный (быстрый) способ выполнения SQL-запроса. В тех же исключительных случаях, когда SQL-серверу даются конкретные указания по использованию индесов (созданных заранее), то обычно это делают специалисты в области MS SQL Server достаточно высокого уровня, которые очень хорошо разбираются в том, как работает оптимизатор запросов MS SQL, и четко отдают себе отчет, почему их не устраивает логика работы его "встроенного интеллекта". Чаще всего это происходит тогда, когда в некоторых таблицах происходит очень частое добавление и удаление больших объемов информации, при которых картина селективности различных индексов по этой таблице радикально изменяется. А процедура обновления статистик индекса не может использоваться слишком часто, потому что она замедляет работу SQL-сервера. То есть, опитимизатор запросов может сформировать неоптимальный план выполнения запроса потому, что пользуется устаревшими статистиками, который с высокой долей вероятности в существенной степени не соответствуют текущему состоянию индесов. Вот в этих случах в SQL-запрос добавляются так называемые "хинты" - подсказки оптимизатору запросов о том, какими индексами он должен пользоваться. Опять же "какими индесами" в терминах MS SQL Server, то есть, должно быть указано имя ранее созданного индеса, и для того, чтобы на него сослаться, это имя требуется знать . Теперь собственно о тексте SQL-запроса. Прежде всего, хочу заметить, что стандартный SQL-запрос (не использующий специфику синтаксиса того или иного SQL-сервера) - это изначально именно язык ЗАПРОСОВ , а не "инструкций". То есть, SQL-запрос сообщает серверу лишь о том, какой РЕЗУЛЬТАТ намерен получить тот, кто этот запрос отправил. А вот способ (алгоритм), которым этот результат будет получен, SQL-сервер выбирает САМ . Теперь попытаемся перевести на русский язык, какой запрос пытается отправить NAV на MS SQL Server: авторSELECT * FROM "Основная БД для тестирования$Товар Книга Применения"... Выбрать все колонки из таблицы "Основная БД для тестирования$Товар Книга Применения"... автор...WITH (READUNCOMMITTED)...это единственный хинт, который имеется в данном SQL-запросе. Он сообщает SQL-серверу, что ему разрешается читать так же те записи, которые добавились или изменились другими пользователями в других транзакциях, даже если эти транзакции не завершены и могут быть откачены. автор...WHERE (("Примен.-к Операции Но."<>0)) AND (("Примен.-из Операции Но."=30195))...В указанной ранее таблице необходимо выбрать не все записи, а только те, для которых значение поля "Примен.-к Операции Но."<>0 и значение поля "Примен.-из Операции Но."=30195. Обратите внимание, здесь нет никаких указаний по поводу "индексов" или "ключей", здесь речь идет просто о ПОЛЯХ таблицы. Если по этим полям ранее не было создано никаких индесов, то оптимизатор SQL-сервера может попытаться выбрать записи методом полного просмотра всех записей этой таблицы. Если индексы были созданы, то он ими, скорее всего, воспользуется, если определит, что они обладают достаточной селективностью. Обращаю также внимание на то, что порядок следования логических условий в SQL-запросе, объединяемых логическим AND, значения НЕ ИМЕЕТ . Оптимизатор запросов, если обнаружит ранее созданный индес по полю "Примен.-из Операции Но.", сам определит, что им нужно воспользоваться в первую очередь, а уже потом допольнительно отфильтровать из полученного набора записи в соответствии с условием "Примен.-к Операции Но."<>0 автор...ORDER BY "Примен.-к Операции Но.","Примен.-из Операции Но.","Операция Но."Полученный набор записей должен быть отсортирован по полю "Примен.-к Операции Но.". Для тех записей, у которых значения этого поля одинаковы, они сортируются в пределах одного значения по полю "Примен.-из Операции Но.". Для тех записей, у которых одинаково значение двух полей "Примен.-к Операции Но." и "Примен.-из Операции Но.", отсортировать по полю "Операция Но.". Инструкция "ORDER BY" предписывает отсортировать записи в определенной последовательности. Если имеется индекс, по соответствующим полям, SQL-сервер им воспользуется, если нет, то отсортирует без индекса. Если количество возвращаемых записей до 200-300, то операция сортировки записей врядли сильно скажется на времени выполнения запроса. Если же их многие тысячи или сотни тысяч, тогда нужно будет убедиться, что индексы по соответствующим полям созданы и что статистики по ним регулярно обновляются. Вот, собственно, и всё, что сказано в тексте SQL-запроса. "Верни мне записи, отфильтровав их по такому-то условию и отсортировав их таким-то образом". Ни слова ни о каких "ключах" и "индексах". Теперь по сути. Самый простой способ без проникновения в расшифровки плана выполнения запроса и без "прослушивания" SQL-сервера утилитой Profiler (требуется некоторая сноровка, чтобы научиться отфильтровывать нужную информацию среди того водопада запросов, которые поступают на SQL-сервер). Попробуй выполнить это запрос из Query Analyzer. Если он отрабатывает медленно, значит проблема на стороне MS SQL Server. Она может быть связана с тем, что по полю "Примен.-из Операции Но." индекс не был создан. Либо с тем, что индекс создан, но статистики по нему 10 лет не обновлялись. Если запрос отрабатывает моментально, значит MS SQL Server "ни в чем не виноват". Попробуй сначала выполнить запрос к MS SQL Server в Query Analyzer, сообщи о результатах, потом расскажу, что делать дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 10:55 |
|
||
|
|

start [/forum/topic.php?fid=29&msg=36838577&tid=1526391]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
166ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 277ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...