Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Представление элемента: откуда ТП его берет? (число прочтений - 2567 )
karek
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 22
Зарегистрирован: 08. Сентября 2006
Представление элемента: откуда ТП его берет?
27. Ноября 2007 :: 15:10
Печать  
Имеем следующее: при выборке полей таблицы, являющихся, к примеру, ссылками справочника, ТП отображает их в соотвтетсвии с представлением.
В связи с этим вопрос: откуда ТП берет это представление, ведь в запросе выбирается только ID элемента? Я посомтрел в SQL профайлере - никаких доп. запросов к серверу нет.

То есть нужно ли мне в запросе джоинить со всеми ссылаемыми таблицами, чтобы получить, к примеру Наименование элементов сразу в запросе? Этот вопрос интересует в двух аспектах: в плане быстродействия и в плане возможности быстрого поиска/сортировки по полю.

Спасибо.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Представление элемента: откуда ТП его берет?
Ответ #1 - 28. Ноября 2007 :: 03:25
Печать  
karek писал(а) 27. Ноября 2007 :: 15:10:
Имеем следующее: при выборке полей таблицы, являющихся, к примеру, ссылками справочника, ТП отображает их в соотвтетсвии с представлением.
В связи с этим вопрос: откуда ТП берет это представление, ведь в запросе выбирается только ID элемента? Я посомтрел в SQL профайлере - никаких доп. запросов к серверу нет.

То есть нужно ли мне в запросе джоинить со всеми ссылаемыми таблицами, чтобы получить, к примеру Наименование элементов сразу в запросе? Этот вопрос интересует в двух аспектах: в плане быстродействия и в плане возможности быстрого поиска/сортировки по полю.

Спасибо.

Покажи текст запроса для ТП
  
Наверх
ICQ  
IP записан
 
karek
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 22
Зарегистрирован: 08. Сентября 2006
Re: Представление элемента: откуда ТП его берет?
Ответ #2 - 28. Ноября 2007 :: 08:42
Печать  
Код
Выбрать все
SELECT
   Договор.ID AS [Договор $Справочник.Договор],
  $Договор.Проект AS [Проект $Справочник.Проекты],
  $Договор.Контрагент AS [Контрагент $Справочник.Контрагенты],
  $Договор.Компания AS [Компания $Справочник.Контрагенты]
FROM $Справочник.Договор AS Договор(NOLOCK)
WHERE ...
 


Здесь поля Проект, Контрагент, Компания - ID-шники соответствующих справочников, но в ТП выводится их наименование, в соответствии с основным представлением. Я так понимаю, что если мне нужна сортировка или быстрый поиск по этим полям, то необходимо делать так:
Код
Выбрать все
SELECT
   Договор.ID AS [Договор $Справочник.Договор],
  Проекты.DESCR AS [Проект $Строка],
  Контрагенты.DESCR AS [Контрагент $Строка],
  Компании.DESCR AS [Компания $Строка]
FROM $Справочник.Договор AS Договор(NOLOCK)
LEFT JOIN $Справочник.Проекты AS Проекты(NOLOCK) ON Проекты.ID = $Договор.Проект
LEFT JOIN $Справочник.Контрагенты AS Контрагенты(NOLOCK) ON Контрагенты.ID = $Договор.Контрагент
LEFT JOIN $Справочник.Контрагенты AS Компании(NOLOCK) ON Компании.ID = $Договор.Компания
 


Но если мне не нужна сортировка/быстрый поиск, какой вариант будет правильнее с точки зрения производительности?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Представление элемента: откуда ТП его берет?
Ответ #3 - 01. Декабря 2007 :: 08:05
Печать  
Так ты ведь типизируешь поля в запросе, поэтому у тебя там отображается объект а не его Ид
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Представление элемента: откуда ТП его берет?
Ответ #4 - 01. Декабря 2007 :: 08:09
Печать  
А вот с точки зрения производительности здесь вопрос сложный Улыбка
В теории второй вариант должен быть быстрее, но не факт Улыбка
  
Наверх
ICQ  
IP записан
 
karek
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 22
Зарегистрирован: 08. Сентября 2006
Re: Представление элемента: откуда ТП его берет?
Ответ #5 - 03. Декабря 2007 :: 08:04
Печать  
Nick писал(а) 01. Декабря 2007 :: 08:05:
Так ты ведь типизируешь поля в запросе, поэтому у тебя там отображается объект а не его Ид

Вот мне и непонятно: откуда ТП берет его наименование, ведь в запросе выбирается только айдишник элемента, а никаких доп. запросов для получения наименования элемента на сервер не посылается...
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Представление элемента: откуда ТП его берет?
Ответ #6 - 03. Декабря 2007 :: 08:09
Печать  
karek писал(а) 03. Декабря 2007 :: 08:04:
Nick писал(а) 01. Декабря 2007 :: 08:05:
Так ты ведь типизируешь поля в запросе, поэтому у тебя там отображается объект а не его Ид

Вот мне и непонятно: откуда ТП берет его наименование, ведь в запросе выбирается только айдишник элемента, а никаких доп. запросов для получения наименования элемента на сервер не посылается...


Это ты как проверил?
  
Наверх
ICQ  
IP записан
 
karek
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 22
Зарегистрирован: 08. Сентября 2006
Re: Представление элемента: откуда ТП его берет?
Ответ #7 - 03. Декабря 2007 :: 08:11
Печать  
Nick писал(а) 03. Декабря 2007 :: 08:09:
karek писал(а) 03. Декабря 2007 :: 08:04:
Вот мне и непонятно: откуда ТП берет его наименование, ведь в запросе выбирается только айдишник элемента, а никаких доп. запросов для получения наименования элемента на сервер не посылается...


Это ты как проверил?

SQL-Профайлером.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Представление элемента: откуда ТП его берет?
Ответ #8 - 03. Декабря 2007 :: 08:13
Печать  
karek писал(а) 03. Декабря 2007 :: 08:11:
Nick писал(а) 03. Декабря 2007 :: 08:09:
karek писал(а) 03. Декабря 2007 :: 08:04:
Вот мне и непонятно: откуда ТП берет его наименование, ведь в запросе выбирается только айдишник элемента, а никаких доп. запросов для получения наименования элемента на сервер не посылается...


Это ты как проверил?

SQL-Профайлером.


Тем не менее кроме как из базы наименование ему взять неоткуда
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать