MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 28.11.2016, 08:32   #1
stefaktiv
MOF User
MOF User
Standard T-SQL : MSSQL 2014 - SQL Server 2016 Express - In-Memory-OLTP nutzen (Timestamp)

Zuerst einmal der Hinweis, dass noch ein Präfix für den neuen MSSQL-Server 2016 fehlt.

Seit dem SP1 des SQL Server 2016 steht die OLTP-Technik ja auch in der Express-Variante zur Verfügung. Ich würde auch liebend gerne die Tabellen entsprechend in den Speicher verlegen, habe aber das Problem, dass es keine Timestamp-Datenfelder mehr gibt. Das ist dahingehend blöd, weil ich bei einem Teil der Abfragen auf die Information zurückgreife, welcher Datensatz zuletzt geändert wurde.

Gibt es zum Timestamp zukünftig denn keinen Ersatz?
stefaktiv ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.01.2017, 19:26   #2
stefaktiv
Threadstarter Threadstarter
MOF User
MOF User
Standard

Mmm - weiß dazu niemand eine rechte Antwort? Hat jemand die neue Technik schon einmal ausprobiert?
stefaktiv ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.01.2017, 21:10   #3
Markus Chemnitz
MOF Koryphäe
MOF Koryphäe
Standard

es wird wohl das Format 'timestamp' nicht mehr unterstützt in den 'In Memory' Tabellen, genauso wie das 'Text' Format. Sehr zu meinem Bedauern. Es hindert Dich aber nicht daran anstatt des timesampts ein Getdate() da rein zu schreiben - das sollte wohl auch funktionieren.
Ich habe mit den 'In Memory' Tabellen auch mal rumexperimentiert. Der Aufwand eine alte Tabelle da hin zu bekommen ist schon exorbitant. Zudem werden einige Formate wie timestamp, text oder berechnete Spalten gar nicht akzeptiert. Zudem komme ich nie in den Entwurfsmodus einer 'In Memory Tabelle'. Dazu muss ich immer SQL bemühen. Ich weiß auch nicht so recht ob das der große Performance Bringer ist. Vielleicht ist es geschickter die alte Datenbank auf SSD Devices auszulagern.

__________________

MarkB

Vom Leben nichts zu erwarten, ist das Geheimnis aller echten Heiterkeit!

Geändert von Markus Chemnitz (27.01.2017 um 21:20 Uhr).
Markus Chemnitz ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 29.01.2017, 21:26   #4
stefaktiv
Threadstarter Threadstarter
MOF User
MOF User
Standard

Also bei einem Test konnte ich die Tabelle im SSMS schon im Entwurfmodus umstellen. Nur die Timestamp-Werte hat er eben nicht übernommen. Rein vom Test im SSMS war die Abfragegeschwindigkeit auch wirklich sehr viel schneller. Ich denke, dass es für meinen Anwendungsfall auf jeden Fall etwas bringen wird.

Mein Problem ist aber, dass ich auf diesen Werten Abfragen aufgesetzt habe. In einer Tabelle sind Personen gespeichert, in anderen Entitäten wie Adressen, Emailadressen und Telefonnummern. Als Verbindung gibt es noch pro Entitätsart eine Zwischentabelle, so dass eine Adresse für mehrere Personen vergeben werden kann. In vielen Berichten soll aber nur eine Adresse ausgegeben werden - und zwar immer diejenige, die als letzte aktuelle Adresse eingegeben oder geändert wurde.

Hierzu nutze ich dann den Timestamp-Wert. Natürlich könnte man auch ein Datumsfeld nutzen. Wichtig wäre aber, dass es keine doppelten Zeiten geben kann - es müsste also wohl bis zur Milisekunde exakt sein. Sonst bekommt man ein Problem, wenn automatisiert zwei Adressen hintereinander für die gleiche Person eingetragen werden.

Irgendwie müsste ich jetzt auch die Timestamp-Reihenfolge auf eine Ersatzspalte mit dem Datum und der genauen Zeit der letzten Änderung transferieren... nachdem der Timestamp kein echtes Datum ist, dürfte das aber schwierig sein.
stefaktiv ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 30.01.2017, 13:00   #5
Markus Chemnitz
MOF Koryphäe
MOF Koryphäe
Standard

also ich habe mal gegoogelt, es ist im SQL Server nicht möglich aus einem timestamp Wert eine Datetime zu machen - definitiv. Ich habe mal selbst rumgespielt und habe aus den timstamp Spalten varchar (50) Spalten gemacht. Dnach konne ich bei einer Abfrage mit order by nach den Timestamp (varchar(50)) Werten sauber sortieren. Vielleicht ist das ein Ansatz. Zukünftig würde ich an Deiner Stelle aber mit Getdate() arbeiten. Damit befüllst Du eine datetime Spalte als Standardwert. Leider darfst Du dazu Deine Applikation komplett umstellen... :-(

__________________

MarkB

Vom Leben nichts zu erwarten, ist das Geheimnis aller echten Heiterkeit!
Markus Chemnitz ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 31.01.2017, 11:27   #6
sonic8
MOF Profi
MOF Profi
Standard

Zitat: von Markus Chemnitz Beitrag anzeigen

also ich habe mal gegoogelt, es ist im SQL Server nicht möglich aus einem timestamp Wert eine Datetime zu machen - definitiv.

Das ist so, weil eine TSQL-Timestamp nichts mit Datum und Uhrzeit zu tun hat und damit auch nicht konform mit dem SQL-Standard ist.
Das ist auch der Grund, warum der TSQL-Timestamp-Datentyp auch "deprecated" ist und davon abgeraten wird, ihn weiterhin zu verwenden.

Ein SQL-Standard-Timestamp entspricht bei SQL-Server dem Datetime-Datentyp.

Der Ersatz für einen alten TSQL-Timestamp ist der Datentyp Rowversion.

__________________

Better VBA - Videoserie - Episode 9 - Bessere Code-Lesbarkeit durch Prozeduren
sonic8 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 02.02.2017, 13:32   #7
Markus Chemnitz
MOF Koryphäe
MOF Koryphäe
Standard

SQL Server 2016: Wenn ich aber eine Speichertabelle anlege und als Datentyp 'rowversion' in einer Spalte angebe wird das beim Ausführen angefehlert, das timestamp - Formate in Speichertabellen nicht möglich sind. Das scheint mir auch keine Lösung zu sein.

__________________

MarkB

Vom Leben nichts zu erwarten, ist das Geheimnis aller echten Heiterkeit!
Markus Chemnitz ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:12 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.