Monday 2 October 2017

Umzug Durchschnitt In Tm1


Acer Aspire S 13 S5-371 Notebook Rückblick Für die deutsche deutsche Rezension siehe hier. Nach dem Aspire S7 und dem billigen Aspire S3. Acer startet den nächsten Vertreter der dünnen und leichten Klasse. Der Aspire S13 könnte ein glückliches Medium zwischen seinen beiden Vorgängern sein. Während es High-End-Komponenten verwendet, zum Beispiel eine Intel i7-6500U CPU. Es ähnelt der Aspire S7 im Display (Full HD, matt) und Speichermedium (bis zu 512 GB SATA3 SSD). Dies schafft einen attraktiven, schnellen und mobilen Computer für einen Preis von ca. 1000 Euro (1140). Klingt das dir vielleicht bekannt. Zum Beispiel sind die unzähligen UX300 ZenBook Modelle von Asus genau im gleichen Preisbereich. Updates Changelog 05-10-2016 16:00 hinzugefügt Informationen über die Webcam und ein Video auf dem Fan Lärm 05-04-2016 14:30 Farbraum, Rating, Gaming Benchmarks 05-03-2016 18:00 Wartung und Upgrade Möglichkeiten erklärt Und illustriert 05-03-2016 09:15 imagesanalyse im freien, audioanalyse, SD-karte test, betrachtungswinkel 05-02-2016 17:00 Throttling-Analyse (Leistung, Taktraten und Temperaturen unter CB15 und The Witcher 3 gt1h) 05 -01-2016 12:45 Systemlärm und Lautsprecher Der Witcher 3 Benchmarks 05-01-2016 09:00 Akkulaufzeit unter Last, AS SSD und 3DMark 11 Benchmarks 04-30-2016 23:44 PCMark 8 mit Analyse 04-30- 2016 21:30 Erstveröffentlichung Upgrades amp Wartung Um zum Ventilator, Akku und M.2 SSD zu gelangen, musst du zuerst 10 Kreuzschlitzschrauben entfernen und die Kante mit einem Plastikspachtel lösen (um Schaden zu vermeiden) danach. Leider ist das eine umständliche Aufgabe, in der wir unser Werkzeug ruiniert haben. Sobald Sie die Plastikclips gelöst haben, können Sie die Unterseite entfernen und die internen Komponenten erreichen. Es ist lobenswert, dass die Batterie nicht geklebt, sondern nur mit einem Stecker verbunden und mit zwei Schrauben befestigt ist. Auch der Lüfter kann direkt zum Reinigen erreicht werden und die M.2 SSD kann nach dem Entfernen einer anderen Schraube ausgetauscht werden. Das Qualcomm Wi-Fi Modul befindet sich in der oberen rechten Ecke. Es ist mit zwei Antennen verbunden und kann auch leicht ausgetauscht werden. Kommunikation Eine Besonderheit ist der 802.11 n Chip von Qualcomm, der für MU-MIMO fähig ist. Zu Beginn der Tests war die WLAN-Verbindung stabil und die Download-Raten wurden nicht verlangsamt. Eine 2 GB Datei wurde von unserem langsamen WD MyCloud NAS bei 60-70 MBs (nach dem Task Manager bei über 600 MBits erhaltenen Verkehr) übertragen. Allerdings haben wir nur 250 Mbits (Sending) und 320 Mbits (Empfang) in einem Standardtest mit iperf (mit unserem MU-MIMO-fähigen Linksys EA8500 Referenz-Router) erreicht. Die gleiche Datei von NAS erreichte auch nur 160-200 MBits nach dem Task-Manager danach. Die hinterleuchtete Tastatur erfreut sich mit einem komfortablen, gedämpften Schlaganfall und erlaubt uns glatte und schnelle Eingabe mit wenigen Fehlern von Anfang an. Wir mochten das Layout, den Schlüsselabstand und den Schlaganfall. Nur die Cursortasten sind etwas klein. Hinweis: Wir hatten eine Variante des Aspire S 13 mit QWERTY-Layout. QWERTZ Keyboards werden in Modelle von deutschen Händlern verkauft. In der WPM (Worte pro Minute) Test, der Autor erreicht 84 WPM ohne lange Anpassung. Der Test, der direkt nachher mit einer Cherry Desktop-Tastatur (mechanisch) durchgeführt wurde, führte zu 90 WPM. Tippfehler wurden gleichmäßig verteilt. Insgesamt ist das ein sehr gutes Ergebnis. Das Touchpad ist bequem groß und verfügt über gute Gleiteigenschaften. Sein unteres 90 ist anklickbar, wenn auch nicht unbedingt sogar prinzipiell. Aber es funktioniert ganz gut für ein quotWindows touchpadquot. Während es nicht mit dem aktuellen MacBook Trackpad Schritt halten kann, gehört es definitiv zu den besseren in der Windows-Welt. Unser Testmodell nutzt einen Intel Core i7-6500U. In den ersten Benchmarks zeigt es eine durchschnittliche bis sehr gute Leistung im Vergleich zu anderen Notebooks mit i7-6500U. Gleiches gilt für die Grafikeinheit. Anscheinend reicht die Kühlung für gute Leistungsergebnisse aus der Dual-Core-CPU mit integrierter GPU. Wir überprüfen die Leistung der Prozessorkerne in Cinebench R15. Der eingebaute Core i7-6500U erreicht ein durchschnittliches Ergebnis in den Single-Core-Tests. Die schnellste i7-6500U ist nur 8 schneller, während die langsamste nur 69 der Leistung erreicht. Im Gegenzug ist es nur 1 unterhalb der Blei im Multi-Core-Test. Alles in allem, das gibt eine sehr gute Leistung. Nach vielen Cinebench R15 Multi läuft die Partitur des Aspire S 13 etwa 10 niedriger (292 versus 326 Punkte). Die Taktrate bleibt zwischen 2,6 und 2,7 GHz stabil und die Prozessorkerne schalten bei 84 ° C ab. Systemleistung Im System-Benchmark PCMark8 Home (3.0 beschleunigt) steht der S 13 auf dem Niveau der besten Notebooks mit Core i7-6500Us. Das Zenbook UX303UA (5), der Aspire R14 R5-471T (3) und der ThinkPad X1 Carbon (3) sind nur etwas schneller. Allerdings sind die Yoga 900. die XPS 13. und die Neid 13 sind etwa 15 langsamer. Die Voll-HD-Auflösung kann tatsächlich zu einer Leistungsverstärkung führen, verglichen mit z. B. 4K Notizbücher. Im Vergleich zu allen überprüften Subnotebooks spielt der Aspire S13 hervorragend. Das schnellste Gerät ist das alte EliteBook 820 G1. Was aber nur 10 schneller ist. Der Durchschnitt ist bei 82 deutlich niedriger. PCMark 8 Home Score Beschleunigt v2 PCMark 8 Work Score Beschleunigtes v2 Speichergerät Unser Testmodell verwendet eine 512 GB SSD von LiteOn als Speichergerät. Der LITEON CV1-8B512 ist ein M.2 2280 SATA SSD und mit einem Maximum von 520450 MBs (readwrite). Mit 502418 MBs erzielt es gute Ergebnisse für eine SATA SSD in CrystalDiskMark 3.0 und die AS SSD Benchmark-Ergebnisse sind auch nichts zu niesen. Trotzdem ist es ein bisschen unglücklich, dass das System keine schnellere NVMe SSD verwendet. Allerdings ist es fraglich, ob dies in alltäglichen Aufgaben ohnehin spürbar wäre. Systemgeräusche Nach unseren ersten Beobachtungen ist das Kühlsystem ein Mischbeutel. Das gemessene Systemrauschen ist überhaupt nicht übertrieben. Der Lüfter bleibt in der Regel ohne Last und das Gerät leise. Leider läuft der kleine Lüfter schnell mit minimaler Belastung. Bei unserem Test ist dies bereits beim Öffnen von Webseiten oder bei der Installation von Programmen passiert. Obwohl das gemessene Systemrauschen bei maximal 31,3 dB (selten 33 dB) niedrig bleibt, ist die Rauschcharakteristik aufgrund einer hohen Frequenz relativ unangenehm und in ruhigen Umgebungen sehr hörbar. Darüber hinaus ändert sich die Lüftergeschwindigkeit dauerhaft, was es noch erkennbar macht. Unter Last fällt der Lüfter meist bei 36,9 dB ab. Allerdings gibt es auch höhere Gipfel. Zum Beispiel wurde das Gerät während des ersten 3DMark06-Laufs auf einem kalten Gerät so laut wie 42 dB für eine kurze Zeit bekommen. Darüber hinaus beschleunigt es häufig, nachdem Programme schon geschlossen worden sind, als ob es den Rest der Hitze aus dem Kühlsystem herausblasen möchte. Da die Frequenz bei höheren Drehzahlen auch unangenehm hoch ist, können sich sensible Anwender in ruhigen Umgebungen gestört fühlen. Wenn du den Laptop in einem normal lauten Büro benutzen wirst, wird das Umgebungsgeräusch sicherlich aus dem Ventilator herauskommen. Angesichts der beobachteten unkritischen Temperaturen im Inneren könnte es möglich sein, den zu aktiven Lüfter unter Niedriglast mit einem Software-Update zu moderieren. Acer arbeitet derzeit an einem solchen BIOS-Upgrade. Wenn möglich, werden wir den Aspire danach überprüfen. Das Kühlsystem bleibt relativ ruhig, aber die wechselnde Drehzahl und hohe Frequenzen waren für uns ziemlich unangenehm. Während des ersten 3DMark06-Laufs steigt das Systemrauschen am Anfang an, endlich aber bei etwa 37 dB ab. In einem ersten Eindruck spielen die Sprecher laut und deutlich. Allerdings fehlt der Sound an Bässe. Es wird im direkten Vergleich zum Frequenzdiagramm des neuen Apple MacBook 12 deutlich, das im Hinblick auf seine Größe einen hervorragenden Klang erzeugt, dass der Aspire S 13 vor allem Schwachstellen bei niedrigen Frequenzen sowie hohen Frequenzen zeigt. Der MB 12 ist in beiden Bereichen lauter und zeigt insgesamt eine lineare Frequenzkurve. Mit 80 dB und einer Frequenzkurve weit von linear, sind die Lautsprecher nicht bemerkenswert. Batterielebensdauer Mit 7,5 Stunden (452 ​​Minuten) in unserem Wi-Fi-Batterie-Test (öffnet Webseiten über Skript bei 150 cdm Helligkeit) ist der Acer Aspire S 13 gerade überdurchschnittlich (die überprüften Subnotebooks der letzten 24 Monate erreichten 422 Minuten durchschnittlich). Der Toshiba Satellite Z30-B-100 führt mit beeindruckenden 12 Stunden. Das Zenbook UX305UA-FC040T mit der gleichen CPUGPU-Kombination hat 561 Minuten (über 9 Stunden) erreicht und ist das beste 6500U Gerät. Allerdings ist die minimale gemessene Akkulaufzeit (Battery Eater Classic Gaming Last bei maximaler Helligkeit) definitiv unter dem Durchschnitt. Die relativ kurze Akkulaufzeit von 1,5 Stunden ist sicherlich auf die hohe maximale Helligkeit zurückzuführen. Zum Beispiel lief der anspruchsvolle The Witcher 3 zwei Stunden und fünf Minuten bei 150 cdm leider nur bei 14 - 16 fps, aber ohne Leistungsverlust im Vergleich zum Netzbetrieb. Leerlauf (ohne WLAN, min Helligkeit) Unser erster Eindruck vom Acer Aspire S 13 war sehr positiv und das wurde vor allem durch den Rest des Tests bestätigt. Wir mochten den Fall, die Eingabegeräte und das Display. Obwohl die Farbtreue besser ausserhalb der Box sein sollte (sehr gute Ergebnisse nach der Kalibrierung), ist die matte Oberfläche, kombiniert mit einer hohen maximalen Helligkeit, ein großer Profi. Wir haben das Fan-Verhalten unseres frühen Testmodells nicht so gut gefallen, was eine unangenehme Häufigkeit zeigt. Wir müssen hier auf ein BIOS-Update warten, da ein aktiver Lüfter unter Niedriglast im Hinblick auf die Temperaturen nicht notwendig ist. Laut Acer arbeiten sie bereits an einem Update, um dieses Problem zu beheben. Dies könnte erheblich verbessern unsere System Lärm Bewertung und die Notebooks insgesamt Rating könnte um einen Prozentpunkt zu erhöhen. Schnelles System, helles und mattes IPS-Display sowie gute Akkulaufzeit in realistischen Szenarien: Acer hat mit dem Aspire S 13 ein gut gemachtes Bündel für mobile Anwender geschaffen. Weitere Profis des Aspire S 13 sind seine gute Performance und Akkulaufzeit von oben 7 Stunden in realen Szenarien. Darüber hinaus überzeugten die Eingabegeräte in unserem Test. Die Asus Zenbooks, einschließlich der UX305CA mit passiver Kühlung oder der ähnlich ausgestatteten UX303UA. Sind ganz ähnlich positioniert wie der Acer Aspire S13. Acers Aspire R13 R7-372T ist eine interessante Alternative aus dem 2-in-1 Sortiment. Derzeit ist der Dell XPS 13 sehr erfolgreich im 13-Zoll-Bereich und Varianten mit i5 CPU und FHD-Display sind ähnlich preislich. PricecompareCreating Dynamic Subsets in Applix TM1 mit MDX - Ein Primer zu diesem Dokument Dieser MDX Primer soll als einfache Einführung in die Erstellung dynamischer Dimension Untermengen mit MDX in TM1 dienen. Es konzentriert sich auf die Bereitstellung von Arbeitsbeispielen, anstatt zu versuchen, die komplette Theorie von MDX zu erklären und stellt sicher, dass die für die TM1-Nutzer am nützlichsten sind. TM1 derzeit (ab 9.0 SP3) erlaubt es Benutzern, MDX zu verwenden, um Dimensionsuntermengen zu erstellen und keine Cube-Ansichten zu definieren. Dies bedeutet, dass die Verwendung von MDX in TM1 ist oft ganz anders in Bezug auf die Syntax und Absicht von Beispielen in Bücher und im Internet gefunden. Da MDX (Multi-Dimensional eXpressions) eine branchenübliche Abfragesprache für OLAP-Datenbanken von Microsoft ist, gibt es viele Referenzen und Beispiele, die im Internet zu finden sind, obwohl man bedenkt, dass TM1 nicht jeden Aspekt der Sprache unterstützt und einige eintrifft Einzigartige eigenschaften. Dies kann es schwierig machen, im Web gefundene Beispiele zu verwenden, während alle Beispiele in diesem Dokument einfach in TM1 kopiert und eingefügt werden können und ohne Modifikation ausgeführt werden, vorausgesetzt, Sie haben das Beispiel Mini-Modell, das später als dokumentiert erstellt wurde. Volles Dokument als nur eine HTML-Seite hier. Was ist eine MDX-basierte dynamische Teilmenge in TM1 Eine dynamische Teilmenge ist eine, die keine feste, statische Liste ist, sondern sie basiert auf einer Abfrage, die bei jeder Untermenge neu ausgewertet wird. In der Tat könnte MDX verwendet werden, um eine statische Teilmenge zu erstellen und ein Beispiel wird unten gezeigt, aber dies ist unwahrscheinlich, nützlich oder gemeinsam zu sein. Einige Beispiele für nützliche dynamische Teilmengen könnten eine Liste aller Basis-Produkte sein, eine Liste unserer Top 10 Kunden mit einer Bruttomarge eine Liste überfälliger Lieferungen aller Kostenstellen, die ihr Budget noch nicht vorgelegt haben. Der Punkt ist, dass diese Listen (Teilmengen) von Sekunde zu Sekunde variieren können, basierend auf der Struktur oder Daten in TM1. Zum Beispiel, sobald eine neue Niederlassung nach Europa hinzugefügt wird, wird die Niederlassung der europäischen Niederlassungen sofort diese neue Zweigniederlassung ohne jegliche manuelle Eingriffe enthalten. MDX ist die Abfragesprache, die verwendet wird, um diese Teilmengen zu definieren. MDX ist eine branchenübliche Abfragesprache für mehrdimensionale Datenbanken wie TM1, obwohl TM1 nur eine bestimmte Teilmenge unterstützt (entschuldigen Sie das Wortspiel) der gesamten Sprache und fügt auch einige einzigartige Features hinzu. Wenn Sie eine Teilmenge mit MDX anstelle einer Standard-Teilmenge definieren, speichert TM1 diese Definition und nicht die resultierende Menge. Dies bedeutet, dass die Definition oder Abfrage jedes Mal neu ausgeführt wird, wenn Sie es betrachten, ohne dass der Benutzer oder Administrator überhaupt etwas tun muss. Wenn sich die Datenbank in irgendeiner Weise geändert hat, dann können Sie verschiedene Ergebnisse von der letzten Zeit, die Sie es verwendet haben. Zum Beispiel, wenn eine Teilmenge als die Kinder der Westküsten-Zweige definiert wird und dies zunächst Oakland, San Francisco, San Diego zurückgibt, wenn es zuerst definiert ist, kann es später wieder Oakland, San Francisco, San Diego, Los Angeles, sobald LA hat Wurde in die Dimension als Kind der Westküste Zweige hinzugefügt. Das ist es, was wir mit der Dynamik des Ergebnisses bedeuten. Ein weiterer Grund, der dazu führen kann, dass sich die Teilmenge ändert, ist, wenn sie auf den Werten innerhalb eines Würfels oder Attributs basiert. Jeden Tag in der Zeitung sind die größten Börsenmacher aufgeführt, wie z. B. ein Top 10 in Bezug auf Aktienkursanstieg. In einem TM1-Modell wäre dies eine Untermenge, die eine Aktienkursänderungsmaßnahme ansieht und wäre eindeutig wahrscheinlich, einen anderen Satz von 10 Mitgliedern jeden Tag zurückzugeben. Der beste Teil ist, dass die Teilmenge ihre Ergebnisse automatisch aktualisiert, ohne dass eine Arbeit von einem Benutzer benötigt wird. So erstellen Sie eine MDX-basierte Teilmenge in TM1 Die gleichen grundlegenden Schritte können mit allen Beispielen in diesem Dokument befolgt werden. Generell können die Beispiele in das Expression-Fenster des Subset-Editors kopiert und eingefügt werden. Beachten Sie, dass es irrelevant ist, welcher Würfel die Dimension von Ihnen verwendet wird, erhalten dieselben Ergebnisse, ob Sie die Dimension Subset Editor aus einer Cube-Ansicht, dem Cube-Baum im Server Explorer oder dem Dimensionsbaum im Server Explorer öffnen. Um eine MDX-Abfrage anzuzeigen und zu bearbeiten, musst du das Expression-Fenster im Subset-Editor sehen können. Um dieses Fenster ein - und auszuschalten, wählen Sie View Expression Window. Sie können jetzt einfach (oder fügen) Ihre Abfrage in diese Expression Windows und drücken Sie die Schaltfläche Aktualisieren, um die Ergebnisse zu sehen. So erstellen Sie eine statische Teilmenge mit MDX Eine statische Teilmenge ist eine, die niemals in ihrem Inhalt variiert. Diese Abfrage wird die gleichen 3 Mitglieder (Discount Loan, Term Loan und Retail) jedes Mal zurückgeben. Keine Sorge, es wird immer spannender von hier. So erstellen Sie eine dynamische Teilmenge mit MDX TM1 unterstützt nur eine bestimmte Anzahl von Funktionen aus der kompletten MDX-Spezifikation. Verschiedene Versionen von TM1 unterstützen verschiedene Funktionen (und potenziell unterstützen die auf unterschiedliche Weise). Der gültige Satz von Funktionen für die Version von TM1, die Sie verwenden, finden Sie in der Haupt-Hilfedatei unter Referenzmaterial MDX-Funktionsunterstützung. Bevor Sie versuchen, eine neue Abfrage zu schreiben, stellen Sie sicher, dass es unterstützt wird, und obwohl einige nicht gelistete Funktionen sicherlich funktionieren, müssen sie auf eigene Gefahr verwendet werden. Die Standardfehlermeldung, die bedeutet, dass die Funktion echt nicht von Ihrer Version von TM1 unterstützt wird, ist fehlgeschlagen, um den Ausdruck zu kompilieren. Ein Wort der Warnung: Die Ergebnisse einer dynamischen Teilmenge können sich durch ihre Natur ändern. Wenn Sie dynamische Teilmengen in Ansichten, Prozessen, SUBNM-Funktionen und so weiter einschließen, sollten Sie sorgfältig darüber nachdenken, was die möglichen zukünftigen Ergebnisse sein könnten, besonders wenn die Teilmenge eines Tages leer sein könnte. Die beiden häufigsten Methoden, um tatsächlich eine dynamische Teilmenge zu erstellen, sind, sie von Hand zu erstellen oder mit TurboIntegrator zu arbeiten. Von Hand . Sie können entweder eine Abfrage in das Expression-Fenster eingeben oder einfügen, wie zuvor beschrieben, oder Sie können Tools Record Expression (und dann Stop Recording, wenn getan), um eine Art von Videorecorder einschalten. Sie können dann die normalen Funktionen des Subset-Editors verwenden (z. B. nach Level wählen, sortieren usw.) und dieser Recorder wird Ihre Aktionen in einen gültigen MDX-Ausdruck umwandeln. Dies ist ein guter Weg, um einige Beispiele für die gültige Syntax zu sehen, vor allem für komplexere Abfragen. Wenn Sie einen Ausdruck aufgenommen haben und wählen Sie Stopp Aufnahme TM1 wird Sie bitten, zu bestätigen, ob Sie den Ausdruck mit der Untermenge anhängen möchten - stellen Sie sicher, dass Sie Ja sagen und markieren Sie das Kontrollkästchen Ausdrücke speichern, wenn Sie die resultierende Teilmenge speichern, ansonsten nur eine statische Liste Des Ergebnisses wird gespeichert, nicht die dynamische Abfrage selbst. Verwenden von TurboIntegrator. Es wird nur eine Zeile mit SubsetCreateByMDX benötigt, um die Teilmenge zu erstellen und zu definieren. Sie müssen wissen, welche Abfrage Sie wollen, wie die Definition bereits. Beachten Sie, dass die Abfrage im TI-Skript mit Textverkettung aufgebaut werden kann, so dass Variablen aus Ihrem Skript enthalten können und lange Abfragen in Stufen aufgebaut werden können, die einfacher zu lesen und zu pflegen sind. SubsetCreatebyMDX (Basisprodukte,, 0)) Alle TI-erstellten MDX-Teilmengen werden automatisch als dynamische MDX-Abfragen gespeichert und nicht als statische Liste. Beachten Sie, dass mindestens bis zu TM1 v9.0 SP3 MDX-basierte Teilmengen nicht zerstört werden können (SubsetDestroy), wenn sie von einer öffentlichen Ansicht verwendet werden, und sie können nicht mit einem zweiten SubsetCreateByMDX-Befehl neu erstellt werden. Daher ist es schwierig, MDX-basierte Teilmengen mit TI zu ändern. Während die dynamische Natur der Teilmenge Definition kann es etwas unwahrscheinlich, dass Sie tatsächlich wollen, dies zu tun, ist es wichtig zu beachten. Wenn Sie einen Aspekt der Abfrage ändern müssen (zB ein TM1FilterByPattern von 2006-12 bis 2007-01, müssen Sie die Abfrage definieren, um externe Parameter zu verwenden, wie in diesem Dokument dokumentiert. Dies wird eine geringe Leistungseinschränkung über die einfachere haben Hardcoded-Version, auch Filter gegen Werte eines Cubes mit SubsetCreateByMDX in der Epilog-Registerkarte zB 0), Test (Posting Measures. Amount) gt 0) funktioniert nicht, wenn die Werte in der Registerkarte Daten geladen wurden. Sie müssen den SubsetCreateByMDX-Befehl in einem nachfolgenden TI-Prozess ausführen. Beachten Sie, dass TI eine Grenze von 256 Zeichen für die Definition von MDX-Teilmengen hat, mindestens bis zu v9.1 SP3, was recht begrenzt sein kann. Syntax und Layout Eine Abfrage kann über mehrere Zeilen gebrochen werden, um sie besser lesbar zu machen. Zum Beispiel: FILTER (, 0), Test2 (Rate Measures. Rate) 19) ist besser lesbar als die ganze Abfrage in einer Zeile. Der eigentliche Filterabschnitt ist einfacher zu lesen und zu modifizieren, indem er ihn auf einer Linie von selbst hat. Beachten Sie, dass Verweise auf Mitglieder in der Regel den Dimensionsnamen als Präfix haben. Zum Beispiel ist der Dimensionsname optional, aber nur, wenn der Mitgliedsname (Einzelhandel in diesem Fall) innerhalb des gesamten Servers vollständig eindeutig ist - d. h. es gibt keine Cubes, Dimensionen oder Mitglieder mit dem genauen Namen. Zum Beispiel ist dies die gleiche Abfrage mit dem Dimensionsnamen weggelassen: Was würde im Kontext der Beispielanwendung funktionieren, die von diesem Dokument verwendet wird, aber in einer realen Welt riskant sein würde. Die Fehlermeldung, die beim Vergessen gegeben wurde, um das Präfix anzugeben, wäre so etwas wie das Level - oder Mitgliedsname Einzelhandel zweideutig: in Dimensionen gefunden und dann geht es darum, die verschiedenen Dimensionen aufzulisten, in denen der nicht eindeutige Mitgliedsname gefunden werden kann hilfreich. Es ist daher sicher am sichersten und leistungsstärksten, immer das Dimensionspräfix zu verwenden. Die Verwendung von eckigen Klammern kann manchmal ein bisschen willkürlich erscheinen, wenn man Beispiele für MDX-Abfragen liest. Die Tatsache ist, dass ein OLAP-Objektname (z. B. Cube-Name, Dimensionsname, Mitgliedsname) nur in eckigen Klammern eingeschlossen werden muss, wenn er ein Leerzeichen enthält, mit einer Zahl beginnt oder ein MDX-reserviertes Wort ist (z. B. Auswählen). Allerdings kann es manchmal einfacher sein, sich zu entscheiden, immer Klammern zu verwenden, so dass ähnliche Abfragen von Seite an Seite leichter verglichen werden können. Die genaue Definition eines Mitglieds in TM1 wird fast immer als Dimension Name. Member Name und nicht mehr ausgedrückt. In anderen Produkten, die auch MDX als Abfragesprache verwenden (z. B. Microsoft Analysis Services), können Sie feststellen, dass Abfragen den vollständigen Pfad vom Dimensionsnamen über die Hierarchie bis zum Mitgliedsnamen angeben, zB: Datum 2009.Q1.Feb. Week 06 Dies kann auch als Date 2009Q1FebWeek 06 geschrieben werden. Der Grund dafür ist, dass andere Produkte möglicherweise nicht verlangen, dass jeder Mitgliedsname eindeutig ist, da jedes Mitglied einen Kontext hat (seine Familie), um es eindeutig zu identifizieren, weshalb Sie müssen genau wissen, welche Woche 06 benötigt wird, da es andere gibt (im Jahr 2008 zum Beispiel im obigen Beispiel). TM1 erfordert, dass alle Mitgliedsnamen auf jeder Ebene (und innerhalb von Aliasen) in dieser Dimension vollständig eindeutig sind. TM1 müsste dich dazu bringen, Q1, Feb und Week 06 expliziter zu machen (dh Q1 2009, Feb 2009, Woche 06 2009), aber du kannst dann einfach auf Date. Week 06 2009 verweisen. Schließlich Fall (dh Großbuchstaben Im Vergleich zu Kleinbuchstaben) ist bei MDX-Befehlen nicht wichtig (zB Filter oder FILTER, TOPCOUNT oder TopCount sind ganz gut), aber wieder können Sie lieber nur einen Style als Standard annehmen, um es leichter zu lesen. Das Beispielmodell verwendet In diesem Dokument werden viele Beispiele für dynamische Abfragen gegeben. Sie alle arbeiten (genau wie geschrieben, nur kopieren und fügen Sie sie in das Expression-Fenster im Subset-Editor der entsprechenden Dimension, um sie zu benutzen) auf dem einfachen Satz von Würfeln und Dimensionen unten gezeigt. Das Modell ist bewusst einfach ohne besondere Eigenschaften, so dass Sie es einfach finden, die Arbeit auf Ihr eigenes Modell zu übertragen. Das verwendete Modell umfasste 1 Hauptdimension, Produkt, auf dem die überwiegende Mehrheit der Abfragen funktioniert, plus 3 Würfel: Test, Test2 und Test3. Die Datenwerte in den Würfeln werden während des Testens variieren (Sie wollen die Werte optimieren und die Abfrage erneut ausführen, um sicherzustellen, dass sich die Ergebnisse ändern und korrekt sind), aber die Screenshots unten zeigen die Cube - und Dimensionsstrukturen, die gut genug sind, um schnell wiederherzustellen Sie oder wie man dein eigenes Modell anstatt benutzt. Um die Verteilung dieses Dokuments zu vereinfachen, besteht keine Absicht, auch die aktuellen TM1-Modelldateien zu verteilen. Beachten Sie, dass die Hauptdimension verwendet, Produkt, featured ragged und mehrere, Hierarchien. TM1SubsetAll, Mitglieder, Member-Bereich Die Basis für viele Abfragen, das gibt die gesamte Dimension (fast unten, unten), was das Äquivalent zum Klicken auf die Schaltfläche Alle im Subset-Editor ist. TM1SUBSETALL (Produkt) Beachten Sie, dass nur die letzte Instanz in der ersten Hierarchie von Mitgliedern, die mehrfach konsolidiert wird, zurückgegeben wird. Die Mitglieder-Funktion dagegen liefert die volle Dimension, Duplikate enthalten: Product. Members Eine Reihe von zusammenhängenden Mitgliedern aus der gleichen Ebene kann ausgewählt werden, indem du das erste und letzte Mitglied des Sets spezifizierst, das du mit einem Doppelpunkt zwischen ihnen benötigst. Dieses Beispiel gibt den 1. Januar bis zum 12. Januar 1972 zurück. Wählen Sie nach Level, Regular Expression (Pattern) und Ordinal Selecting Mitglieder, die auf ihrer Ebene in der Dimensionshierarchie (TM1FilterByLevel) oder durch ein Muster von Strings in ihrem Namen (TM1FilterByPattern) basieren Einfache Verwendung der Record Expression-Funktion im Subset-Editor. Die klassischen alle Blattwerke Abfrage mit TM1s Level Filtering Befehl TM1FilterByLevel:, 0) Wählen Sie alle Blätter Mitglieder, die die Wildcard HC i. e., die H und C als die dritte und vierte Zeichen aus dem Ende ihres Namens entsprechen. , 0), HC) Der Grund dafür, dass diese Funktionen mit TM1 beginnen, ist, dass sie keine Standard-MDX-Befehle sind und für TM1 eindeutig sind. Es gibt zwei Hauptgründe, warum Applix solche einzigartigen Funktionen implementieren wird: um eine Funktion hinzuzufügen, die im Standard TM1 vorhanden ist und die Benutzer vermissen werden, wenn es nicht da ist oder weil Standard TM1 das gleiche Feature wie MDX hat, aber historisch umgesetzt hat es etwas anders MDX und würde daher wieder Benutzerprobleme verursachen, wenn es nur im Standard-MDX-Weg implementiert wurde. In diesen beiden Fällen bringt TM1FilterByPattern eine Funktion, die von TM1-Benutzern häufig verwendet wird, die in MDX fehlt, während TM1FilterByLevel existiert, da TM1 seit ihrer Einführung im Jahr 1984 die Konsolidierungsstufen von null für die Blattniveaus nummeriert hat Insgesamt Mitglieder, während Microsoft beschlossen, es genau das Richtige zu tun. In bestimmten Situationen ist es sinnvoll, die Standard-MDX-Level-Methode zu verwenden, und dies ist auch mit der Levels-Funktion verfügbar. Es erlaubt Ihnen, die Mitglieder einer Dimension zurückzugeben, die sich auf dem gleichen Niveau wie ein benanntes Mitglied befindet, nur bedenken, dass Standard-MDX die Ebenen in Bezug auf ihre Entfernung von der Spitze der Hierarchie und nicht die Unterseite als TM1 anordnet. In diesem Beispiel werden alle Mitglieder auf der gleichen Ebene wie das Einzelhandelsmitglied zurückgegeben: Welches, obwohl Retail eine hochrangige Konsolidierung ist, gibt ein N: Item (Product Not Applicable) in der Dimension zurück, da dieses direkt in alle Produkte rollt, wie auch Einzelhandel Sie gelten als auf dem gleichen Niveau. Um die Dimension basierend auf einer Level-Nummer zu filtern, müssen Sie die Funktion. Ordinal verwenden. Dies wird nicht dokumentiert, da es in der Hilfedatei unterstützt wird und nicht in 8.2.7 funktioniert, sondern scheint in 9.0 SP3 und 9.1.1.36 zumindest zu arbeiten. Dieses Beispiel gibt alle Mitglieder auf Stufe 1 zurück:, Product. CurrentMember. Level. Ordinal 1) Dieses Beispiel würde alle Mitglieder nicht auf der gleichen Ebene wie Discount Loan zurückgeben. , Product. CurrentMember. Level. Ordinal TM1Sort, TM1SortByIndex und Order TM1Sort ist das Äquivalent zum Drücken einer der beiden Sort Ascending oder Sort Absteigende Schaltflächen im Subset Editor i. e. alphabetisch sortieren. TM1SortIndex ist das Äquivalent zum Drücken eines der beiden Sortieren nach Index, aufsteigend oder nach Index sortieren, absteigende Schaltflächen im Teilmengeneditor, zB nach dem Dimensionsindex (Dimix). Order ist eine Standard-MDX-Funktion, die einen Datenwert aus einem Cube verwendet, um die Sortierung durchzuführen. Zum Beispiel sortieren Sie die Liste der Kunden nach dem Verkauf oder eine Liste der Mitarbeiter nach ihrer Dauer des Dienstes. Sortieren Sie die gesamte Produktdimension in alphabetisch aufsteigender Reihenfolge. , ASC) Sortieren Sie die Blattglieder der Dimension entsprechend ihren Betragswerten im Testcube von höchsten Abwärts. ORDER (, 0). Test (Posting Measures. Amount), BDESC) Beachten Sie, dass die Verwendung von BDESC anstelle von DESC radikal unterschiedliche Ergebnisse liefert. Dies liegt daran, dass BDESC alle Mitglieder über den eingesetzten Satz (in diesem Fall die ganze Dimension) als gleichgeschwätzte Geschwister behandelt und sie entsprechend ordnet, während DESC die Mitglieder als noch in ihren Familiengruppen behandelt und sie nur gegen ihre eigenen direkten Geschwister zählt . Wenn Sie nicht sicher sind, was das bedeutet und kann nicht den Unterschied sehen, wenn Sie es ausprobieren, dann verwenden Sie einfach BDESC Order kann auch ein Attribut anstelle eines Cube-Wertes verwenden. In diesem Beispiel wird das AlternateSort-Attribut des Produkts verwendet, um die Kinder von Demand Loan in absteigender Reihenfolge zu sortieren. Es ist ein numerisches Attribut mit ganzen Zahlen (dh 1, 2, 3, 4 usw.), um eine vollständig dynamische Sortierreihenfolge zu definieren:, Product. AlternateSort, DESC) TopCount und BottomCount Ein klassischer Top 10 Befehl:, 0), 10, Test (Posting Measures. Amount)) Durch das Weglassen einer Sortierreihenfolge sortiert sie die Standardreihenfolge (die die Werte absteigend hat und die vorhandenen Hierarchien unterbricht). Eine Top 10-Abfrage mit einer expliziten Sortierreihenfolge für die Ergebnisse. , 0), 10, Test (Posting Measures. Amount)), Test (Posting Measures. Amount), BDESC) BDESC bedeutet, die Hierarchie zu brechen. Beachten Sie, wie die gewählte Maßnahme für die Sortierreihenfolge wiederholt wird. Obwohl das gleiche Maß in der Probe oben verwendet wird, könnte man tatsächlich die Top 10 Produkte durch den Verkauf finden, aber dann zeigen sie in der Reihenfolge, sagen wir, Einheiten verkauft oder ein strategisches Wichtigkeitsattribut. Dies ist die Top 10 Produkte auf der Grundlage von Test2s Rate Werte, nicht bestellt so wird nach den Werten in Test2 sortiert werden. , 0), 10, Test2 (Rate Measures. Rate)) Dies sind die Top 10 Produkte auf der Grundlage von Test2s Daten in der Rate Maßnahme, bestellt von 10 bis 1., 0), 10, test2 (Rate Measures. Rate) ), Test2. (Rate Measures. Rate), ASC) TopCount automatisch eine absteigende Sortierung nach Wert, um die TOP Mitglieder zu bekommen. Wenn dies nicht erwünscht ist, können Sie stattdessen die Head-Funktion (ausführlich unten) verwenden. BottomCount ist das Gegenteil von TopCount und wird so verwendet, um die Mitglieder mit den niedrigsten Werten in einem Würfel zu finden. Achten Sie darauf, dass der niedrigste Wert oft Null ist und wenn dieser Wert aus der Abfrage ausgeschlossen werden muss, müssen Sie sich später in diesem Abschnitt auf den Abschnitt über die Filterfunktion beziehen. A Bottom 10 Abfrage mit einer expliziten Sortierreihenfolge für die Ergebnisse. , 0), 10, Test (Posting Measures. Amount)), Test (Posting Measures. Amount), BASC) Weiterführende Literatur: TopSum, TopPercent und ihre Bottom Äquivalente sind nützliche Funktionen. Filter, nach Werten, Strings und Attributen Die FILTER-Funktion wird verwendet, um die Dimension basierend auf irgendwelchen Datenwerten zu filtern, anstatt nur die Mitglieder und ihre Hierarchie auf eigene Faust. Diese Daten können Cube-Daten (numerisch oder string) oder Attributdaten sein. Dies erfordert eine Veränderung des Denkens von einfachen Einzelabmessungen (Listen mit einer Hierarchie und gelegentlich einigen Attributen) zu einem mehrdimensionalen Raum, in dem jede Dimension in diesen Würfeln berücksichtigt und behandelt werden muss. Dieses Beispiel gibt die Blattmitglieder des Produkts zurück, die einen Betragswert im Testwürfel über Null haben. , 0), Test (Posting Measures. Amount) gt 0) Da der Test Cube nur 2 Dimensionen hat Produkt - und Posting-Maßnahmen ist dies ein einfaches Beispiel. Die meisten Würfel haben mehr als nur die Dimension gefiltert und die Dimension mit dem Filterwert in. Allerdings ist es einfach, das erste Beispiel zu erweitern, um in einem größeren Würfel zu arbeiten. Dieses Beispiel gibt die Blattmitglieder des Produkts zurück, die einen Betragswert für alle Entitäten im Test3-Würfel über Null haben. , 0), Test3 (Entity. All Entities, Posting Measures. Amount) gt 0) Wie Sie aus dem oben genannten sehen können, fügen Sie einfach alle erforderlichen Dimensionsreferenzen in die runden Klammern ein. Normalerweise benötigen Sie nur ein bestimmtes Namensmitglied (z. B. Alle Entitäten). Wenn die Dimension weggelassen wird, wird stattdessen das CurrentMember verwendet, das ähnlich ist wie das Verwenden der Dimension (d. h. für jedes) in einer TM1-Regel und könnte verschiedene Ergebnisse mit einer anderen Geschwindigkeit zurückgeben. Anstatt nur einen hartcodierten Wert zu verwenden, um zu filtern (Nullen in den obigen Beispielen), gibt dieses Beispiel alle Produkte mit einer Menge im Testcube zurück, die größer oder gleich dem Wert in der Zelle MidasJCFI, Betrag ist. , 0), Test (Posting Measures. Amount) gt Test (Product. MidasJCFI, Posting Measures. Amount)) Diese Abfrage gibt die Produkte zurück, die einen Rate-Wert in Test2 größer als MidasJXCOs Rate in Test2 haben. Nun, diese Abfrage gibt einfach eine Reihe von Produkten, die bis zu Ihnen, welche Würfel Sie diese Produkte anzeigen, dh Sie können dies während des Browsens Test und daher zurückkehren, was aussieht wie ein fast zufälliger Satz von Produkten, aber die Tatsache ist, dass die Abfrage filtert Die Liste der Produkte auf der Grundlage der Daten in Test2 statt. This may not immediately appear to be useful but actually it is, and can be extremely useful for example display the current years sales for products that were last years worst performers. If the data for two years was held in different cubes then this would be exact same situation as this example. There are often many potential uses for displaying a filteredfocused set of data in Cube B that is actually filtered based on data in Cube A. , 0), Test.(Posting Measures. Amount) gt Test2.(Product. MidasJXCO, Rate Measures. Rate) ) As detailed elsewhere, Tail returns the final member(s) of a set. An example of when it is handy when used with Filter would be for finding the last day in a month where a certain product was sold. The simple example below initially filters Product to return only those with an All Entity Amount gt 0, and then uses tail to return the final Product in that list. , 0), Test3.( Entity. All Entities, Posting Measures. Amount) gt 0 )) Note: with the other cubes having more dimensions than does Test the current member is used (each), not All so whether you want each or All you should write this explicitly to be clearer. You can even filter a list in Cube1 where the filter is a value in one measure compared to another measure in Cube1. This example returns the Products with an amount in the Test cube above zero where this Amount is less than the value in Count. , 0), (Test. Posting Measures. Amount 0 ) This example returns all the leaf products that have an Amount in Entity Not Applicable 10 greater than the Amount in Entity Not Found, in the Test3 cube. Not very useful but this was the only example cube we had to work with, but it would be very useful when comparing, say, Actual Q1 Sales with Budget, or finding out which cost centres Q2 Costs were 10 higher than Q1. Later in this document we will see how to take that 10 bit and make it a value from another cube, thus allowing administrators, or even end users, to set their own thresholds. , 0), test3.(Entity. Entity Not Applicable, Posting Measures. Amount) 1.1 gt test3.(Entity. Entity Not Found, Posting Measures. Amount)) Filtering for strings uses the same method but you need to use double quotes to surround the string. For example, this query returns products that have a value of bob in the Test2 cube against the String1 member from the StringTest dimension. Note that TM1 is case-insensitive. , 0), Test2.(StringTest. String1) bob ) Filter functions can be nested if required, although the AND or INTERSECT functions may be useful alternatives. The limit to the number of characters that an MDX subset definition can sometimes be, 256, is too restricting for many data-based queries. When trying to shoehorn a longer query into less characters there are a few emergency techniques that might help: consider whether you need things like TM1FILTERBYLEVEL, 0 (it might well be that the filter would only return members at the leaf level by definition anyway) whether the dimension name prefix can be removed if the member is guaranteed to be unique remove all spaces lookup cubes are not for end users so maybe you could shorten some names (cubes, dimension, members) drastically whether there are alternative functions with shorter syntaxes that return the same result - e. g. an INTERSECT or AND versus a triple FILTER. Finally, if it really is vital to get a long query working then you can build up the final result in stages i. e. put some of the filtering into Subset1, then use Subset1 as the subject of Subset2 which continues the filtering, etc. Parent, Children, FirstChild, LastChild, Ancestors, Descendants, DrillDownLevel and TM1DrilldownMember Children returns the set of members one level below a named parent. FirstChild returns the first child one level below a named parent. Returns Call Participation Purchased. LastChild returns the last child one level below a named parent. This is excellent for finding the last day in a month, since they can vary from 28 to 31. Another example is when a consolidation is set up to track a changing set of members (e. g. Easter, or Strategic Customers). Returns Term Participation Purchased. Parent returns the first parent of a given member. If a member has more than one parent, and the full unique path to the member is not specified then the first parent according to the dimension order is returned. Returns Bonds. Would force TM1 to return the second parent, External Bonds. Descendants returns the named parent and all of its descendant children i. e. the hierarchy down to the leaf level: TM1DrilldownMember returns the same thing as descendants: , ALL, RECURSIVE ) DrillDownLevel just returns the parent and its immediate children: ) DrillDownLevel can be extended with a parameter to say which level to return the members from, rather than the level immediately below, but this doesnt appear to work in TM1 v9.0 SP2 through to 9.1.1.36. The common requirement to return a list of just leaf-level descendants of a given consolidated member just needs a level filter applied to the TM1DrillDownMember example above:,ALL, RECURSIVE), 0) Or: , 0) Ancestors is like a more powerful version of Parent it returns a set of all the parents of a member, recursively up though the hierarchy including any multiple parents, grandparents, etc. Returns 2006 October, 2006 Q4, 2006 H2, 2006, All Dates. Lag, Lead, NextMember, PrevMember, FirstSibling, LastSibling, Siblings and LastPeriods Lags and Leads are the equivalent of DnextDprev. will return 2006-10-04. Lead(n) is the same as Lag(-n) so either function can be used in place of the other by using a negative value, but if only one direction will ever be needed in a given situation then you should use the correct one for understandabilitys sake. Note that they only return a single member so to return the set of members between two members you can use the lastperiods function. Equally you can use NextMember and PrevMember when you only need to move along by 1 element. Or: To return the 6 months preceding, and including, a specific date: Or: LastPeriods(6, Date.2006-10-03) Both of which work because LastPeriods is a function that returns a set, and TM1 always requires a set. Curly braces convert a result into a set which is why many TM1 subset definitions are wrapped in a pair of curly braces, but in this case they are not required. This will return the rest (or the ones before) of a dimensions members at the same level, from a specified member. Despite its name LastPeriods works on any kind of dimension: Siblings are members who share a common parent. For example, a date of 14th March 2008 will have siblings of all the other dates in March the first of which is the 1st March and the last of which is 31st March. A cost centre under West Coast Branches would have a set of siblings of the other west coast branches. The FirstSibling function returns the first member that shares a parent with the named member. For example: Returns MidasHCBK. While: Returns MidasHSFI. The siblings function should return the whole set of siblings for a given member. TM1 9.0 SP2 through to 9.1.2.49 appear to give you the entire set of members at the same level (counting from the top down) rather than the set of siblings from FirstSibling through to LastSibling only. Filtering by CurrentMember, NextMember, PrevMember, Ancestor and FirstSibling This example returns the members that have an Amount value in the Test cube above 18. The Product. CurrentMember part is optional here but it makes the next example clearer. , 0), Test.(Product. CurrentMember, Posting Measures. Amount) gt 18 ) This query then modifies the previous query slightly to return members where the NEXT member in the dimension has a value above 18. In practice this is probably more useful in time dimensions. , 0), Test.(Product. CurrentMember. NextMember, Posting Measures. Amount) gt 18 ) This can then be improved to returning members where the next member is greater than their amount. , 0), Test.(Product. CurrentMember. NextMember, Posting Measures. Amount) gt Test.(Product. CurrentMember, Posting Measures. Amount) ) In addition to NextMember, PrevMember can also be used as could lags and leads. The simple, but unsupported as of 9.1.1.89, Name function allows you to filter according to the name of the member. As well as exact matches you could find exceptions, less-thans and greater-thans, bearing in mind these are alphanumeric comparisons not data values. This example returns all base members before and including the last day in January 1972. ,0), Date. CurrentMember. Name For example, this could be a useful query even a dimension not as obviously sorted as dates are: ,0), Product. CurrentMember. Name which returns all base members before MidasJ in terms of their name rather than their dimension index. Parent returns the first parent of a given member: Used with Filter you can come up with another way of doing a children of query: ,0), Date. CurrentMember. Parent. Name 1972 - January) Ancestor() can be used instead of Parent if desired. This example returns base-level product members whose first parents have a value above zero, in other words a kind of family-based suppress zeroes: a particular product might have a value of zero but if one if its siblings has a value then it will still be returned. , 0), Test.(Ancestor(Product. CurrentMember,0), Posting Measures. Amount) gt 0 ) This example filters the products based on whether they match the Amount value of MidasHCBK. , Test.(Ancestor(Product. CurrentMember,0), Posting Measures. Amount) Test.(Product. MidasHCBK, Posting Measures. Amount) ) This example uses FirstSibling to filter the list based on whether a products value does not match that products First Sibling (useful for reporting changing stock levels or employee counts over time, for example, things that are usually consistent). , 0), Test.(Ancestor(Product. CurrentMember,0), Posting Measures. Amount) Filtering by Attributes and logical operators This returns members that match a certain attribute value using the Filter function. , Product. Category Customer Lending) This example looks at multiple attribute values to return a filtered list: FILTER( , ( (Product. CategoryCustomer Lending OR Product. TypeDebit) AND (Product. Internal Deal Filtering by level, attribute and pattern are combined in the following example: ,0), Product. Internal Deal Yes), ID) Head, Tail and Subset Where TopCount and BottomCount sort the values automatically and chop the list to leave only the most extreme values, Head combined with Filter works in a similar manner but Head then returns the FIRST members of the filtered set in their original dimension order. These queries simply return the first and last members of the Product dimension as listed when you hit the All button: This returns the actual last member of the whole Product dimension according to its dimix: , ALL, RECURSIVE ), ASC)) An example of Tail returning the last member of the Customer Lending hierarchy: , ALL, RECURSIVE )) An example of Head returning the first 10 members (according to the dimension order) in the product dimension that have an Amount in the Test cube above zero. , 0), Test.(Posting Measures. Amount) gt 0 ), 10) With both Head and Tail the ,10 part can actually be omitted (or just use ,0) which will then return the first or last member. This returns the last (in terms of dimension order, not sorted values) product that had an amount gt 0 in the Test cube. , 0), Test.(Posting Measures. Amount) gt 0 )) One example of when this is useful over TopCount or BottomCount i. e. when sorting the results would be detrimental - would be to return the last day the year when a certain product was sold. Subset is closely related to Head and Tail, and can actually replicate their results, but is additionally capable of specifying a start point and a range, similar in concept to substring functions (e. g. SUBST) found in other languages, though working on a tuple of objects not strings. The equivalent of Head, 10 would be: , 1, 10) But Subset would also allow us to start partitioning the list at a point other than the start. So for example to bring in the 11th 20th member: , 11, 10) Note that asking for more members than exist in the original set will just return as many members as it can rather than an error message. Union joins two sets together, returning the members of each set, optionally retaining or dropping duplicates (default is to drop). To create a list of products that sold something both in this cube and in another (e. g. last year and this): FILTER( , 0), Test.(Posting Measures. Amount) gt 0 ) , FILTER( , 0), Test3.(Posting Measures. Amount, Entity. All Entities) gt 0 ) ) Intersect returns only members that appear in both of two sets. One example might be to show products that performed well both last year and this year, or customers that are both high volume and high margin. The default is to drop duplicates although , ALL can be added if these are required. This example returns leaf Product members that have an Amount gt 5 as well as a Count gt 5. INTERSECT( FILTER( , 0), Test.(Posting Measures. Amount) gt 5 ) , FILTER( , 0), Test.(Posting Measures. Count) gt 5 ) ) Except and Validating Dimension Hierarchies The function takes two sets as its mandatory parameters and removes those members in the first set that also exist in the second . In other words it returns only those members that are not in common between the two sets, but note that members that are unique to the second set are not included in the result set. Except is a useful function in a variety of situations, for example when selecting all the top selling products except for 1 or 2 you already know are uninteresting or irrelevant, or selecting all the cost centres with high IT costs except for the IT department. The simplest example is to have a first set of 2 members and a second set of 1 of those members: EXCEPT ( , ) Which returns MidasJCFI, the only member not in common between the two sets. For the purposes of maximum clarity in the rest of this section only, we will drop the Product reference and trust that these product names are uniquely in the Product dimension on our server. The optional extra ALL parameter allows duplicates to remain prior to the determination of the difference i. e. matching duplicates within the first set are discarded, while non-matching duplicates are retained. A simple example where there are duplicate members in the first set: EXCEPT ( , ) Returns MidasJCCO (because duplicates are discarded without ALL), while: EXCEPT ( , . ALL) Returns MidasJCCO, MidasJCCO (as ALL allows the duplicate MidasJCCO members to be retained). Note that ALL has no effect on the following query as MidasJCFI is the only member not in common between the two sets and so this is the only result either way: EXCEPT ( , ) Returns MidasJCFI. Remember, the members in the first set that also exist in the second are eliminated, hence (both instances of) MidasJCCO is eliminated So if you were to ask for EXCEPT( , ) then the final set would be without ALL and with ALL. Because matching duplicates in the first set are eliminated first (that is, duplicates in the first set that match a member in the second set), Apples (the only member in the second set that matches a pair of duplicates in the first set, is eliminated. To put the fruit down and return to our demo model we can write the equivalent query against products: EXCEPT ( , ) Returns just one MidasJCFI (the equivalent of Oranges above) while: EXCEPT ( , . ALL) Returns two instances of MidasJCFI. These results are due to the fact that, in the example with ALL, MidasJCCO is eliminated due to a matching member in set 2, while MidasJCFI is reduced to 1 instance due to the lack of ALL. MidasHDBK has no impact because it could not be subtracted from set 1 as it was not in set 1. When ALL was used in the second example, the two MidasJCCO members were still eliminated due to a match in set 2, and MidasHDBK was still irrelevant, but this time the two MidasJCFI members were left alone due to the ALL allowing duplicates. Note: the following section does not work in v9.1 SP2, but does work in v9.0. Ihre Meilenzahl kann variieren. A particularly clever use of Except is to check a TM1 dimension for a valid structure. A simple query can return a list of members that do not eventually roll up into a particular consolidated member. This could be included in a TI process to automate the consistency checking of dimensions after an update. This example returns all the members in the dimension that do not roll up into All Products: EXCEPT ( TM1SUBSETALL( Product ), TM1DRILLDOWNMEMBER( , ALL, RECURSIVE )) Modifying this slightly makes it return base-level members that do not roll up into All Products: EXCEPT ( TM1FILTERBYLEVEL(TM1SUBSETALL( Product ), 0), TM1FILTERBYLEVEL(TM1DRILLDOWNMEMBER( , ALL, RECURSIVE ), 0)) This query returns members that have been consolidated twice or more at some point under the given consolidated member this will often mean there has been an accidental double-count. EXCEPT ( TM1DRILLDOWNMEMBER( , ALL, RECURSIVE ), TM1SUBSETALL( Product ), ALL) It will return one instance of the multi-consolidated member for each time it is consolidated greater than once i. e. if it has been consolidated 4 times then it will return 3 instances. This is due to the fact that TM1SUBSETALL( Product ) will only return one instance of a member that has been consolidated multiple times while the TM1DrilldownMember function will return all the instances. You are reminded that Dimension. Member is actually a shortcut that usually works in TM1 but because the MDX specification allows for member names to be non-unique within a dimension the full address of a member is actually Dimension. Parent1.Parent2Member. Therefore more specific references to duplicate members may be needed, for example Product. Demand Loan. MidasHCBK will address a different instance of MidasHCBK than would Product. Discount Loan. MidasHCBK. In this case, with the Except function, they are treated as if they are different member names altogether. ToggleDrillState ToggleDrillState changes the default drill state from a returned set so if the first query returns a member in a hierarchy rolled up then it will drill it down, or vice versa. Using TM1 Subsets, TM1Member and TM1SubsetToSet One of the special features of using MDX with TM1 dimensions is that existing subsets can be used within the query for defining a new subset. This can be useful in allowing a simpler building block approach and for not having to repeat the same code over and over again and having to maintain it. Used throughout this section, Report Date is an existing subset in the Date dimension containing one leaf date member and test2 is an existing 20-member subset. Note that private subsets are used in preference to public subsets when there is one of each with the same name. This can allow a public subset to return different results based on the contents of different users private subsets, though inevitably with some issues with reliability of results. To simply return the member(s) of pre-existing Date subsets: Date. Report Date Or TM1SubsetToSet(Date, Report Date) The first syntax may be shorter and more convenient but bear in mind, as per the TM1 help file, Since the same syntax (.IDENTIFIER ) is used for members and levels, a subset with the same name of a member or a level will never be instantiated. The second syntax on the other hand will happily work with any subset names even if they are named the same as a cube or dimension. To return the first member of the test2 subset: To return a valid cube reference within a more complex query: TM1Member(Date. Current Date. Item(0), 0) For example: , 1), Reconciliation.(Entity. All Entities, TM1Member(Date. Current Date. Item(0),0),Reconciliation Measures. Transaction Balance) To start with the fourth item (.Item counts from zero) in the test2 subset and then return the preceding 14 members from the whole dimension, including the fourth item: This example returns the one date in Report Date and the next 13 periods, sorted with the earliest date first a moving 2-week reporting window which just needs the Report Date subset to be maintained. This query uses another subset, Strategic Products, as a building block and finds the Top 5 members within it, even though this ranking may well have been based on different values than the original subset was built on. For example, a subset that is already defined may list the 10 highest spending customer segments in terms of year to date actuals, and you then build a new subset that works with these 10 only to find the top 5 in terms of planned marketing spend next quarter. , 5, Test.(Posting Measures. Count)), Test.(Posting Measures. Count), BDESC) Heres a bigger example using TM1member and TM1SubsetToSet functions, in addition to various others. It takes the single period in the Current Date subset and returns the last day of the two preceding months. There would be several different ways of achieving the same result. union( tm1member(tm1subsettoset(Date, Current Date).item(0),0),1) )))), tm1member(tm1subsettoset(Date, Current Date).item(0),0),1) )))) ) Username and StrToMember It returns the TM1 username (or Windows domain username depending on the security system being used for example, GERJEREMY) of the user who runs the query. Note that you may need to give all users Read access to the Clients dimension and all its elements. It is not documented in the help file as being officially supported by TM1 but it is a standard MDX feature that appears to work in v8.3. However, since 8.4.3 until 9.1.2.49 it is reported as failing to automatically update when a new user uses the subset. This can be circumvented by running a frequent TI process that uses the subset as its datasource and the following line in Prolog (Workaround reported by Steve Vincent on the Applix Forum, 2nd August 2006): DIMENSIONSORTORDER(CLIENTS, BYNAME, ASCENDING,,) With this micro-process workaround set to run every few minutes a pseudo-dynamic result is possible. An actual solution to the problem should be tested for in your version if it is 9.1 or later. To save a dynamic subset it needs to be set up on the Clients dimension choose View Control Objects in Server Explorer to see this dimension. Once you have saved the public subset (e. g. as Current User) you can turn this option off again. Clients ), USERNAME ) As an alternative to the above method, and as a way of including the current username directly in queries use the StrToMember function which converts a plain string into a valid MDX member reference. Clients. USERNAME) Either way the subset can then be referred to on Excel spreadsheets, VBA processes and, as it is simply a standard TM1 subset, in TM1 Websheets. As a non-MDX alternative v9.1.2.49 introduced a TM1User(servername) worksheet function which could be used in some circumstances. Data-based queries, Filter, Sum, Avg and Stdev Sometimes it is not adequate to simply use a single value in a query you need to consider a combination of values. It might be that this combination is only needed for one or two queries, though, so it is not desirable to calculate and store the result in the cube for all to see. Therefore it is more logical to quickly calculate the result on the fly and although this is then repeated every time the subset is used, it is still the preferred choice. The function Sum, Avg and Stdev are therefore useful for things that are only needed occasionally or by a limited number of users and means that the actual cube is thus smaller and more efficient. SUM, as it might appear, sums up a set of numbers. This allow the aggregation of members not already consolidated in the model. This example checks the Test3 cube for products whose Amounts in the on-the-fly-consolidation of 2 entities are greater than 50. , 0), SUM( , Test3.(Posting Measures. Amount) ) gt 50 ) AVG calculates the average value of a set. Note how empty (zero) cells are not included by the AVG function so the resulting average value might be higher than you expected. This example returns a list of leaf products that have an Amount value in the Test cube higher than the average Amount value of all leaf products (or rather all non-zero leaf products). , 0), (Test. Posting Measures. Amount gt AVG( , 0), Test.(Posting Measures. Amount)) ) ) The set of members that AVG works on here (AVG , 0)) can be changed to something that doesnt match the list of members being filtered earlier in the query. For example, return a list of all leaf products that are higher than the average of the leaf descendants of the Customer Lending consolidation only. , 0), (Test. Posting Measures. Amount gt AVG(,Test.(Posting Measures. Amount))) ) STDEV is the standard deviation function. It returns the average distance from each value in a set to the average of the set as a whole. In this way you can calculate how consistent or unpredictable a set of data is if all the values lie tightly around the average, or if the values vary to be extremely high and low. This example returns the outlying products whose Amount value in the Test cube is greater than the average value plus the standard deviation i. e. those products who have values that are above averagely above the average. , 0), ( Test. Posting Measures. Amount gt ( AVG( , 0), Test.(Posting Measures. Amount)) STDEV( , 0), Test.(Posting Measures. Amount) gt 0 ) ) ) ) ) Note that the AVG function automatically drops empty cells from the filtering set but STDEV does not so we have to apply our own filter. The above queries could be INTERSECTed for both sets of outliers in one subset, if required. Further reading: The MEDIAN function is also supported by TM1 and might be more appropriate than AVG (mean) in some circumstances. Using parameters in queries TM1Member will allow you to use parameterized references by using cube values as part of the query itself. For example if a UserParams cube was created with the Clients dimension (thus allowing concurrent usage by all users) which would hold various choices made by users as they used your application, then dynamic subsets could use those choices as part of their syntax, thus altering not just the thresholds for comparisons (we can see elsewhere in this document how to check if something is, say, above a certain threshold which is actually a value in another cube) but the actual thing that is queried in the first place. For example, this shows the descendants of a parent member, the name of which is held in the 2D UserParams cube at the intersection of the current username and SelectedParentDimix. TM1SUBSETALL( Product ).Item(UserParams.(StrToMember(Clients. USERNAME), UserParamMeasures. SelectedParentDimix)-1) . 0)) Below are screenshots showing the parameter cube which can be extended to hold various user-specific selections and then link them into dynamic subsets plus the other relevant screens. The Generate function applies a second set to each member of a first set, performing a union of the results. Duplicates are dropped by default but can be retained with, ALL. Although Generate doesnt really do anything unique in itself it is a very useful way of shortening what would otherwise be long, laborious and error-prone queries. In the following example the top performing child product is returned for each member of Level 1 of the hierarchy: GENERATE( , 1), TopCount(Descendants(Product. CurrentMember, 1),1,Test.(Posting Measures. Amount))),Test.(Posting Measures. Amount) gt 0 ) Count and IIF Caveat: Note that IIF is not listed in the TM1 v9.0 SP2 help file as being supported so use at your own risk. Count returns the number of items in a set but this set can be a set of members or a set of data values. The result is, obviously, a number and is often returned in reports when used in MDX queries outside of TM1. When trying to use it do define a TM1 subset it can only be used as part of the query logic and not as a result itself. Count can be wrapped around a lot of the other MDX functions and so can be used in many different scenarios. One example is to count how many children a month has and, if there are 28, doing something that is unique to February. Although dimension subsets are usually a list of meaningful items in a business model and are included within application cubes, it is actually possible to have dimensions for administrator purposes only (that are never used to build cubes) which might indicate the state of something e. g. All Passwords Set, or Reconciliation Failed and the Count function could be used to define a subset that contains one of these members, which is information for the administrator only. IIF allows you to introduce some branching logic in your queries i. e. do one thing if this is true, otherwise do something else. You could use it to apply different statistical functions to members that have certain attributes. It works quite commonly with Count to allow one thing to happen if the count of something falls below a threshold, or do something else if not. This example performs either a Top 5 or a Top 10 on all base products Amounts in the Test cube, depending on whether the number of base level Products is 10 or less at the time the query is run. , 0), IIF(Count( , 0)) lt 10, 5, 10), Test.(Posting Measures. Amount) ) This example does a TopCount of the base products based on their Amount value in the Test cube where the number of items displayed is equal to the number of cells in the Test cube whose Amount value is anything other than zero. , 0), Count( Filter( , 0), Test.(Posting Measures. Amount) These are fairly pointless examples, practically speaking, but they show the syntax. Comments allow you to explain, to yourself andor to your users, what the query is trying to achieve, how it works, who wrote it or amended, etc. Use or (without the double quotes) to end a line with a comment or to have the comment on its own line. You can also use COMMENT (again without the quotes) to insert a comment in the middle of a line. You are also able to type anything after the command. This heavily-commented example returns all the products beginning MidasJ: Comment number 1 this is another comment -- and another comment , this is yet another comment MidasJ) You seem to be able to type what you like here, but treat with caution This does not work in version 8.2.7 but does in at least 9.0 and 9.1.1.MSI GL62 6QF Notebook Review For the original German review, see here . quotGaming starts here is MSIs slogan to advertise the pretty inexpensive GL62. Compared to other models from the GE or GS series, however, the manufacturer has cut some corners. For example, the 15-inch model lacks a keyboard illumination as well as an IPS display. The other features are also pretty mediocre. If you look at the models listed by the Internet shop notebooksbilliger. de. which provided the test sample, you only get 8 GB DDR4 RAM, a DVD burner (no Blu-ray drive) and a TN panel with 1920x1080 pixels. You do not get a high-end GPU, either. After the launch of the Nvidia GTX 980. the GTX 960M is more of an upper mainstream chip. Depending on the model, the processor is either a Core i5-6300HQ or the Core i7-6700HQ. MSI uses solid-state drives, conventional hard drives or a combination of both as storage solutions. The biggest advantage of the GL62 is the fair price. Not every manufacturer offers gaming devices priced between 900 and 1100 Euros ( 1218). The competition is still pretty tough for the 15-inch notebook. Whether it is the Asus G501VW or the Acer V15 Nitro. comparable configurations are hardly more expensive. Our review sample, priced at 1100 Euros ( 1218) is based on the model GL62-6QFi78H11 and competes directly with the recently launched HP Omen . good (75) MSI GL62-6QFi781H11 Intel Core i7-6700HQ NVIDIA GeForce GTX 960M v5.1 - 06262016 (download rating image as PNG or SVG ) NVIDIA GeForce GTX 960M - 2048 MB, Core: 1097 MHz, Memory: 2500 MHz, GDDR5, ForceWare 359.00 (368.39 for Games), Optimus 1x 8 DDR4-2133 SO-DIMM, Single-Channel, 1 of 2 slots free, up to 32 GB 15.6 inch 16:9, 1920x1080 pixel 141 PPI, CMN N156HGE-EAL (CMN15D2), TN LED, Full HD, glossy: no Intel HM170 (Skylake PCH-H) Toshiba HG6 THNSNJ128G8NY, 128 GB SSD HGST Travelstar 7K1000 HTS721010A9E630, 1000 GB HDD 7200 rpm. Slots: 1x M.2 Type 2280 (NVMePCIe) 1 x 2.5-inch Realtek ALC899 Intel Sunrise Point PCH - High Definition Audio Controller 1 USB 2.0, 3 USB 3.0 3.1 Gen1, 0 USB 3.1 Gen2, 1 HDMI, 1 DisplayPort, 1 Kensington Lock, Audio Connections: Headphones, Microphone, Card Reader: SD, SDHC, SDXC, Brightness Sensor Qualcomm Atheros AR81718175 PCI-E Gigabit Ethernet (101001000MBit), Intel Dual Band Wireless-AC 3165 (abgnac), Bluetooth 4.2 Both the design and the port selection of the GL62 are reminiscent of the 15-inch sibling GE62. We have already mentioned that there is no keyboard illumination for the cheaper model. Another difference is the materials used. While some parts of the GE62 are made of metal, the GL62 is made entirely of plastic and as a result does not appear quite as sophisticated. Otherwise, the case leaves a decent impression. The stability could be better here and there (wobbly lid, the area around the optical drive can be pushed in), but the build quality meets the price. Thanks to a moderate weight of 2.3 kilograms ( 5.1 lb) and the comparatively slim construction (2.9 cm 1.14 in), it is not hard to transport. The hinges are also good, but you can notice some bounces caused by vibrations. Unlike some other MSI notebooks, the design is surprisingly subtle. The manufacturer mainly uses the color black, and we can only find some red elements on the lid and the bottom. Our overall rating for the case is Satisfactory. Working For Notebookcheck Are you a loyal reader of notebookcheck Are you a techie who knows how to write Then join our Team Connectivity See our Top 10 Notebooks: Top 10 Tablets Smartphones: There is hardly any criticism for MSI in terms of the port selection. Except for the somewhat impractical layout (many ports are at the left front), the connectivity is satisfactory. While RJ45-Ethernet, Kensington Lock, two audio jacks and two video ports are essential for a gaming notebook, four USB ports are hardly a matter of course, especially since MSI has implemented two USB 3.0 Type-C ports (but no USB 3.1 Gen. 2). Card Reader We are disappointed by the performance of the card reader. A mere 27 to 30 MBs in the sequential AS SSD Benchmark test and 25 MBs when we copy 250 jpg files are pretty low. Most gaming notebooks manage more than 70 MBs. Our reference card (Toshiba Exceria Pro SDXC 64 GB UHS-II) could manage up to 260 MBs. Left side: Kensington Lock, RJ45-LAN, USB 3.0, HDMI, DisplayPort, USB 3.0, USB 3.0 Type-C, microphone, headphones Communication MSI uses the WLAN module Wireless-AC 3165 from Intel. As befits a modern gaming notebook, the module supports WLAN 802.11 abgn as well as the ac standard (2.4 amp 5 GHz, up to 433 Mbps) besides Bluetooth. The range was average during our test. At a distance of 10 meters ( 33 ft) to the router and through several walls, Windows indicated 70 Mbps (45 bars). Maintenance The maintenance of the GL62 leaves mixed impressions. It is a pity that MSI does not implement a corresponding hatch. If you want to tinker a little or upgrade parts, you can still remove the whole bottom panel. A damaged warranty seal should not be a problem in Germany, as long as the maintenance work was performed by experienced personnel. As you can see on the pictures of the GL72 (link ), you can access the battery, cooling system, both RAM slots, the 2.5-inch slot and the M.2 slot. Processor and graphics card are soldered, which is normal by now. MSI has equipped the GL62 with various applications and tools. Below, we have included screenshots from three examples. In addition to the System Control Manager, the Dragon Gaming Center is interesting. The latter includes several monitoring and special functions such as the Shift mode, which adjusts the clock behavior of the CPU and the GPU depending on the setting (Green, Comfort amp Sport). The sound can be optimized via Nahimic Sound Enhancer. Office 365 and Norton Security are included as trial versions. Movie enthusiasts will be happy about CyberLink Power DVD 12. The keyboard is a matter of taste. Once again, MSI is using a very unconventional layout. The German version also gets a single-line Return key, so the - key has been shifted. Because of the oversized Shift key, ltgt is moved right next to the space bar. This means that users of classic layouts will have to get used to the keyboard. The typing experience is as good as the GE62 pressure point and stroke will be satisfactory for most users. The same applies for the typing noise, which is not very loud in the case of the GL62 quite the contrary. The key size varies between a generous (15 x 15 mm main keys 0.6 x 0.6 mm) and a rather narrow (12 x 15 mm numbers pad 0.47 x 0.6 in). The F-keys are also smaller, which is typical for notebooks. Great: MSI uses the arrow keys for the volume and brightness control, which results in a more comfortable and simple use. Speaking of comfort: The keyboard is located pretty far at the top, so users get a decently-sized palm rest. We would call the mouse replacement convenient. MSI has implemented a conventional touchpad with precise, but very loud buttons. Considering a width of 10.5 and a height of 6 cm ( 4.1 and 2.4 in respectively), the size is okay. The surface is slightly textured, which is visible in the close-ups. It improves the feedback and the precision without affecting the gliding capabilities significantly. Obviously, the touchpad supports several gestures starting with zooming up to turning gestures. Attention: For some reason, scrolling with two fingers is deactivated by default and has to be enabled in the Synaptics software first (touchpad icon in the notification area). Gestures work great except for the rather tricky zoom. GPU Performance Gaming notebooks priced between 1000 and 1500 Euros ( 1661) are primarily equipped with one of three graphics cards. While the GeForce GTX 965M has 1024 shaders, the less expensive siblings GTX 960M and GTX 950M get only 640 shaders. There are no differences in terms of memory interface, which is 128-bit in each case. The amount of VRAM varies from notebook to notebook. Once again, MSI tries to save some money and has implemented the GTX 960M with 2 instead of 4 GB GDDR5-VRAM. This means that you cannot use the maximum settings in all games (like Hitman ) or at least it is not recommended. However, the GTX 960M will have problems with higher details in general, and it does not matter if you have the 2 or 4 GB version. 3DMark 11 Performance On the other hand, the GL62 can utilize the Turbo perfectly. According to GPU-Z even maximum load is handled with a core clock of 1189 instead of the normal 1097 MHz. Note: Nvidias Maxwell generation will be replaced by Pascal soon. It might be worthwhile to wait for discounts on the GL62 or even a new model. Thanks to the architectural upgrade, the manufacturing process drops from 28 to 16 nm, which promises higher power efficiency. 1920x1080 Fire Strike Graphics 6001 Points sim100 42 5904 Points sim98 39 5323 Points sim89 26 4348 Points sim72 3 4314 Points sim72 2 4239 Points sim71 1920x1080 Fire Strike Score 5261 Points sim100 33 5179 Points sim98 31 4760 Points sim90 20 4028 Points sim77 2 4008 Points sim76 1 3954 Points sim75 1280x720 Performance GPU 8064 Points sim100 63 7919 Points sim98 60 7128 Points sim88 44 5440 Points sim67 10 5304 Points sim66 7 4938 Points sim61 8006 Points sim100 55 7926 Points sim99 53 7269 Points sim91 40 5635 Points sim70 9 5533 Points sim69 7 5178 Points sim65 Unigine Heaven 4.0 - Extreme Preset DX11 32 fps sim100 30 31.8 fps sim99 29 Gaming Performance We have already mentioned that the GTX 960M is not a high-end GPU, which can handle all games at maximum details. If you do not want to reduce the resolution and want to play in the native 1920x1080 pixels, you will often have to choose medium settings without anti-aliasing. This is the case for some of the tested games including Anno 2205 , Assassins Creed Syndicate , XCOM 2 and Mirrors Edge Catalyst . We would even recommend low details for Doom in FHD. Need for Speed , Overwatch , FIFA 16 and Rainbow Six Siege can even be played with high details. However, the limitations would be much lower with the GTX 965M. The latter is at least the 2016 model about 30 faster on average. We updated the GPU driver via GeForce Experience from version 359.00 to the brand-new ForceWare 368.39 for our gaming benchmarks. System Noise Noise-sensitive users should avoid the GL62. The system is not too loud with 41 dB(A) while gaming and up to 46 dB(A) in the stress test, but the idle noise is unnecessarily high at 35 to 37 dB(A). Most gaming notebooks level off if there is no pulsating at around 32 dB(A). The constant fan noise also hides the murmur of the hard drive. You can expect about 39 dB(A) when you watch a DVD movie. We would not advise the use the fan button, which will improve the cooling, but it gets really loud and annoying at 55 dB(A). Even though MSI has equipped the GL62 with audio software and several presets (Music, Gaming amp Movie), the sound is a big disappointment. The 4.0 system sounds pretty muddy, tinny, and unbalanced. This is often the verdict in our notebook reviews, but some rivals perform better (like the Acer V15 Nitro). We would recommend headphones or external speakers for prolonged sessions. Energy Management Power Consumption The 3D consumption is on par with other GTX 960M notebooks. 82 watts during the first 3DMark 06 scene could also be from the Asus G501VW. Maximum load will draw up to 118 watts from the socket, so the GL62 is similar to the Acer V15 Nitro. Curious: Even though the power adapter is rated at 120 watts, the battery will be drained (on mains) in extreme scenarios. The 15-inch device consumes between 10 to19 watts only, while idling. Battery Runtime Nvidias Optimus technology, which depending on the application uses either the GeForce GTX 960M or the integrated GPU of the processor (HD Graphics 530 ), has a big effect on the battery runtimes in particular. However, MSI is not very generous in this category. A battery capacity of 41 watts is pretty low, and the competition is usually equipped with 60-Wh modules. This will affect the mobility. 71 minutes under load at the highest luminance and 5.5 hours while idling at the lowest luminance are not great. A browsing session via WLAN is possible for 2.5 hours. Idle (without WLAN, min brightness)

No comments:

Post a Comment