powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вопросы новичков
25 сообщений из 213, страница 8 из 9
Вопросы новичков
    #38554433
VArtem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, есть вопросы по DeepSee.
Например есть гистограмма, которая питается от сводной таблицы, можно делать DrillDown|DrillUp (т.е. в таблице есть иерархия: Край, Город, Район) - это виджет №1.
Есть виджет №2 - Рабочий Список (ScoreCard) - он питается от KPI SQL.
Так вот вопрос:
Можно ли углубляясь в "Край 1" отображать в виджете №2 какие-то данные отфильтрованные по "Край 1".
т.е. надо как-то передать значение "Край 1" в фильтр KPI - "FilterOne", а потом в методе %OnGetSQL получить значение ..%filterValues.FilterOne и подставить в самосборный sql запрос.

Дeлать у второго виджета ссылку на источник первого виджета - не вариант, т.е. как в Samples есть пример - "Linked Widgets".
Просто во втором виджете надо показывать совершенно другие данные отфильтрованные по "Край 1".
...
Рейтинг: 0 / 0
Вопросы новичков
    #38555173
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VArtemДобрый день, есть вопросы по DeepSee.
Например есть гистограмма, которая питается от сводной таблицы, можно делать DrillDown|DrillUp (т.е. в таблице есть иерархия: Край, Город, Район) - это виджет №1.
Есть виджет №2 - Рабочий Список (ScoreCard) - он питается от KPI SQL.
Так вот вопрос:
Можно ли углубляясь в "Край 1" отображать в виджете №2 какие-то данные отфильтрованные по "Край 1".
т.е. надо как-то передать значение "Край 1" в фильтр KPI - "FilterOne", а потом в методе %OnGetSQL получить значение ..%filterValues.FilterOne и подставить в самосборный sql запрос.

Дeлать у второго виджета ссылку на источник первого виджета - не вариант, т.е. как в Samples есть пример - "Linked Widgets".
Просто во втором виджете надо показывать совершенно другие данные отфильтрованные по "Край 1".

Насколько я знаю, нужно каким-то образом отловить момент drilldown и в нем выставить фильтр в виджете с помощью метода
zenPage.dashboardEventHandler(...);

Например как это сделано здесь в проекте карты США :
в коллбэке OnDrilldown вызывается
zenPage.dashboardEventHandler(zenThis,'click', zenThis.currGuid, 'applyFilter', '*', 'ParentGuid');
При углублении в карту фильтруется список справа.
Каким образом отловить - написать свой портлет, как здесь, или кастом-виджет - уже дело вкуса.

Если бы зависимый виджет был не KPI, а pivot, тогда можно указать в зависимом виджете источником данных первый, а в зависимом определить спецификацию колонок или строк - т.е. указать свои измерения для строк и колонок.
...
Рейтинг: 0 / 0
Вопросы новичков
    #38563725
Retardust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как в каше оптимизировать запросы order by desc? Индексы обратного порядка я так понимаю нельзя делать.
Запрос без order by работает 0.3 сек, а с ним 10сек. Как поступать?
...
Рейтинг: 0 / 0
Вопросы новичков
    #38563728
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RetardustА как в каше оптимизировать запросы order by desc? Индексы обратного порядка я так понимаю нельзя делать.
Запрос без order by работает 0.3 сек, а с ним 10сек. Как поступать?По какому типу поля запрос делаете ?
Если возможно, покажите пример класса, и пример данных.
...
Рейтинг: 0 / 0
Вопросы новичков
    #38563734
Retardust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос id, сортировка по числовому полю code, в условии индексированные данные через or.
Примерное такой запрос по виду: select id from MyClass where dateLast='123' or dateCurrent='123' or dateNext='123' order by code desc
Индексы по всем полям. С order by code desc работает 10сек, без него 0.3
...
Рейтинг: 0 / 0
Вопросы новичков
    #38563765
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retardust,

как много данных в таблице ?
...
Рейтинг: 0 / 0
Вопросы новичков
    #38564046
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иногда при сортировке, особенно по ID каше ошибочно использует индексы.

попробуйте модификатор %NOTOPOPT
...
Рейтинг: 0 / 0
Вопросы новичков
    #38564107
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Retardust ,

Order by задействует индекс, - если он есть, - как для asc, так и для desc. Но для этого должна быть собрана статистика.

Сделал простой тест (на 2014.1).

Class demo.test Extends %Persistent
{

Index is On s;

Property s As %String;

ClassMethod Fill(N = 10000)
{
  d ..%KillExtent()
  for i=1:1:N &sql(insert into demo.test(s)values('test'||(:i # 100)))

  ;do $system.SQL.TuneTable($classname(),1)
}
}
Заполнил таблицу данными и выполнил запрос вида select * from demo.test order by s desc
Стоимость плана = 6588216 , количество глобальных ссылок = 41036 , индекс, судя по плану, НЕ используется.

Собираем статистику (через Портал или раскомментировав строку) и, о чудо!
Стоимость плана = 89794 , количество глобальных ссылок = 3030 , индекс уже используется.

PS: ещё Вы не указали версию Caché: оптимизатор SQL от версии к версии также улучшается.
...
Рейтинг: 0 / 0
Вопросы новичков
    #38565054
Retardust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за отклики, запрос улучшил за счет %STARTTABLE, (ну это я тут конечно приврал, не сказав что в запросе задействованы и другие таблицы). Построитель показал огромную стоимость, по сравнению с той что была, но запрос выполняться стал в разы быстрее.
...
Рейтинг: 0 / 0
Вопросы новичков
    #38573917
ilson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Наткнулся на одну штуку, помогите :)
Создал kpi, хранимый класс, панель и виджет (ID-колонка значений).
Вот как я делал:
1) Рис.1. - Панель только загрузилась. Нажимаю ActionAlert - пусто, т.е. ничего не выбрано.
2) Рис.2. - Выбираю запись. Нажимаю ActionAlert - показывает ИД записи (верно).
3) Рис.3. - Сортирую, выбираю OrderBy-Author. Сортировка произошла, но строка по-прежнему подсвечена (другой объект уже).
Нажимаю ActionAlert - показывает ИД старой записи, которая была выбрана на Рис.2.(неверно!)
4) Рис.4. - щелкаю по подсвеченной записи и нажимаю ActionAlert - показывает верный ИД.

т.е. возникает путанница какая-то, вроде бы элемент выбран в таблице, но в pContext.currValue хранится старое значение.
Вопрос 1 - Это баг или я что-то неправильно делаю?
Вопрос 2 - Можно автоматически выбрать первую запись в таблице при перой загрузке панели? Или как-то сделать кнопку disabled, если не выбрана строка.

Код KPI:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
XData KPI [ XMLNamespace = "http://www.intersystems.com/deepsee/kpi" ]
{
<kpi xmlns="http://www.intersystems.com/deepsee/kpi" name="TestKPI" sourceType="sql" caption="TestKPI" sql="">
<property name="ID" displayName="ID" columnNo="1"/>
<property name="Title" displayName="Title" columnNo="2"/>
<property name="Author" displayName="Title" columnNo="3"/>

<filter name="AuthorFilter" sql="SELECT DISTINCT %EXACT(Author) From Test.Book"/>
<filter name="OrderBy" displayList="Title,Author" valueList="Title,Author"/>
<action name="AlertAction"/>
</kpi>
}


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Method %OnGetSQL(ByRef pSQL As %String) As %Status
{
	set pSQL = "SELECT ID, Title, Author FROM Test.Book"
	
	if (..%filterValues.AuthorFilter '= ""){
		set pSQL = pSQL_" WHERE Author='"_..%filterValues.AuthorFilter_"'"
	}
	
	if (..%filterValues.OrderBy '= ""){
		set pSQL = pSQL_" ORDER BY "_..%filterValues.OrderBy
	}
	Quit $$$OK
}

ClassMethod %OnDashboardAction(pAction As %String, pContext As %ZEN.proxyObject) As %Status
{
	if (pAction = "AlertAction"){
		if (pContext.currValue '= "" ){
			set pContext.command = "alert:ID="_pContext.currValue
		}
		else{
			set pContext.command = "alert:Empty :("
		}
	}	
	Quit $$$OK
}
...
Рейтинг: 0 / 0
Вопросы новичков
    #38575475
AlexShiryaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Почему при создании класса все строковые элементы по умолчанию ограничиваются 50 символами.
Например, если объявить
Код: vbnet
1.
Property Comment As %String;


То при попытке присвоить параметру Comment строки длинной больше 50 символов получаю ошибку.
Можно, конечно, каждый раз использовать MAXLEN, но как-то утомительно.

Может длина строковых переменных по умолчанию где-то настраивается? И применяется при компиляции?
...
Рейтинг: 0 / 0
Вопросы новичков
    #38575498
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexShiryaevДобрый день!

Почему при создании класса все строковые элементы по умолчанию ограничиваются 50 символами.
Например, если объявить
Код: vbnet
1.
Property Comment As %String;



То при попытке присвоить параметру Comment строки длинной больше 50 символов получаю ошибку.
Можно, конечно, каждый раз использовать MAXLEN, но как-то утомительно.

Может длина строковых переменных по умолчанию где-то настраивается? И применяется при компиляции?В классе %Library.String, параметр MAXLEN значение 50.
Если хотите другое значение MAXLEN, наследуйте свой тип от него, ставьте свое значение, и используйте его в своих классах.
...
Рейтинг: 0 / 0
Вопросы новичков
    #38575504
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexShiryaev ,

Ответ можно найти в классе %Library.String, в котором для MAXLEN по умолчанию указано значение 50.
Если устаёте менять каждый раз MAXLEN, используйте %Library.VarString : строки длиной 3641130 в него записываются без проблем.
...
Рейтинг: 0 / 0
Вопросы новичков
    #38575518
AlexShiryaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
И еще один "дурацкий" вопрос.
Где в каше поменять язык портала управления и меню куба в трее?
Почему-то установился русский, но хотелось бы английский.
...
Рейтинг: 0 / 0
Вопросы новичков
    #38575523
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexShiryaevСпасибо.
И еще один "дурацкий" вопрос.
Где в каше поменять язык портала управления и меню куба в трее?
Почему-то установился русский, но хотелось бы английский.
Язык самого портала управления, можно поменять в портале на странице О системе
а вот язык куба и таких утилит как Студия и терминал, на это влияют региональные настройки системы, если основной язык стоит Русский, потребуется перезапуск куба
на язык сообщений в терминале, влияет установленная локаль
...
Рейтинг: 0 / 0
Вопросы новичков
    #38575554
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexShiryaevСпасибо. И еще один "дурацкий" вопрос. Где в каше поменять язык портала управления и меню куба в трее? Почему-то установился русский, но хотелось бы английский.Для:
...
Рейтинг: 0 / 0
Вопросы новичков
    #38576860
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilsonт.е. возникает путанница какая-то, вроде бы элемент выбран в таблице, но в pContext.currValue хранится старое значение.Это вопрос скорее в WRC, чем сюда.

Можно поступить по-другому:

1) в Студии откройте dashboard и измените
<property name="pivotSelect"></property>
на
<property name="pivotSelect">single</property>
или
<property name="pivotSelect">multi</property>

2) следующий код

if (pContext.currValue '= "" ){
  set pContext.command = "alert:ID="_pContext.currValue
}

замените на

if (pContext.valueList '= "" ){
  set pContext.command = "alert:ID="_pContext.valueList
}

Теперь при сортировке/фильтрации выбранные строки сбросятся и поведение будет более ожидаемым.

PS:
Код: sql
1.
<property name="Author" displayName="Title" columnNo="3"/>
...
Рейтинг: 0 / 0
Вопросы новичков
    #38576938
ilson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, servit
Может быть напишу в WRC.
Но вот мне так и не помогла строчка <property name="pivotSelect">single(multi)</property>
У меня же scorecard, а не pivot. Scorecard выбрал из-за поддержки valueColumn, в pivot - только значение ячейки.
Да и ладно, я уже решил идти другим путем.

Хотел сделать панель в DeepSee - слева два виджета, а справа таблица.
Надо было кликать по всяким графикам слева и смотреть на результат в таблице справа.
А вот если я кликаю по блоку в гистограмме, то значение получается числовое, т.е. значение ячейки.

Делать свой портлет я не хотел. Сделал панель с помощью Google Charts API, там можно всякие события прикрутить, вкидывал json данные(само приложение на AngularJS). Да и таблица справа своя-родная, что хочу, то и творю с ней.
...
Рейтинг: 0 / 0
Вопросы новичков
    #38579123
Bezuma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть вопрос, есть сервер c БД Cache ~7.5 гига, планируется переезд на виртуальный сервер, ка это может сказаться на работе сервера и какие подводные камни есть в этом "переезде" (интересует производительность), всего где-то 200 пользователей одновременно работать могут 50, что скажите, посоветуете?
...
Рейтинг: 0 / 0
Вопросы новичков
    #38579147
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BezumaЕсть вопрос, есть сервер c БД Cache ~7.5 гига, планируется переезд на виртуальный сервер, ка это может сказаться на работе сервера и какие подводные камни есть в этом "переезде" (интересует производительность), всего где-то 200 пользователей одновременно работать могут 50, что скажите, посоветуете?У нас есть проект, который работает на виртуальном сервере, одновременных активных пользователей до 80.

Данных около 600GB

SUSE Linux Enterprise Server 11 (x86_64)
Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
MemTotal: 16338284 kB
...
Рейтинг: 0 / 0
Вопросы новичков
    #38579206
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorУ нас есть проект, который работает на виртуальном сервере, одновременных активных пользователей до 80.

Данных около 600GB
Вопрос не в том у кого, что есть...
Вопрос в том как бы это отличалось от того, если бы стояло на том же компе но не виртуалкой.
...
Рейтинг: 0 / 0
Вопросы новичков
    #38579212
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaDAiMorУ нас есть проект, который работает на виртуальном сервере, одновременных активных пользователей до 80.

Данных около 600GB
Вопрос не в том у кого, что есть...
Вопрос в том как бы это отличалось от того, если бы стояло на том же компе но не виртуалкой.На том проекте, изначально в такой конфигурации работает, и нормально, поэтому и написал.
...
Рейтинг: 0 / 0
Вопросы новичков
    #38579246
Bezuma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

Ясно, спасибо т.е. переходить можно безболезненно, просто мне тут системщики доказывают, что не только не будет падения производительности но даже будет заметен рост (я с этим категорически не согласен, так как считаю что дополнительная прослойка(в лице eSXI) между железом и операционкой, не добавит скорости, другой вопрос замечу ли я разницу на своей системе)
...
Рейтинг: 0 / 0
Вопросы новичков
    #38579248
Bezuma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

Да, вы правы, хотелось бы услышать человека который не изначально так делал, я осуществил переход, это было бы очень интересно....
...
Рейтинг: 0 / 0
Вопросы новичков
    #38579269
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На счет роста производительности, это думаю не совсем верно, при равных характеристиках железа
а вот непадения производительности это да.
Но опять же все зависит от гипервизора на котором все будет подниматься. ESXi, он сможет в виртуальной машине достичь нормальной производительности. Если что-то типа Hyper-V то тут я не уверен в этом.
...
Рейтинг: 0 / 0
25 сообщений из 213, страница 8 из 9
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вопросы новичков
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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