Показать сообщение отдельно
Старый 14.12.2009, 12:19   #8  
Vezunchik is offline
Vezunchik
Участник
 
24 / 7 (1) +
Регистрация: 10.12.2009
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
В SQL н было (точнее было, но в хранимых процедурах, которые используются механизмами доступа данных от MS и не рекомендуются к использованию в сторонних проектах, типа sp_cursor*), а вот в технологиях доступа к данным от MS всегда были методы подготовки запроса и его выполнение (то что делает forcePlaceholders) или выполнение сразу (forceLterals). Это было еще в ODBC, перекочевало в OleDB, затем в ADO, ну и наконец существует теперь в ADO.NET в SqlCommand.Prepare области имен System.Data. Так что говорить по аксптовскую замануху человеку, который 6 лет экспериментировал с SQL Server напрямую (не используя СУБД интерпретаторы запросов) немного некорректно. Кстати, что значит напрямую? Даже QA использует некоторые библиотеки доступа.
функция Prepare готовит план выполнения запроса. если этот Prepare использовать всегда и везде, то перекомпиляция плана будет происходить при каждом вызове Prepare. QA использует некоторые библиотеки конечноже, но то что в итоге доходит до сервера можно поймать лишь Profiler. и до сервера доходит только это, а не forcePlaceholders из загадочной Axaptы. любая библиотека доступа к данным естественно может использовать дополнительные методы по "оптимизации", но от этого у SQL Server новых команд не добавится. а напрямую - это не используя 1с или Axapta как интерпретатор. а написание прямых запросов к серверу, и сам принимаешь решение, как "оптимизировать" запрос.