Ich bin überrascht von einer meiner Erkenntnisse, dass die Verwendung von a FORMAT ()
einen sehr großen Einfluss auf die Zeilengröße und Datengröße hat. Es ist fast 250x größer als die Größe, die nicht angewendet wird FORMAT ()
.
Meine Frage ist:
1) Warum hat die Verwendung FORMAT()
einen so großen Einfluss auf die Größe? Für mich beträgt der Unterschied nur 1,23 gegenüber 1,23 US-Dollar, was wahrscheinlich einem Unterschied von 1 Zeichen entspricht. Und spielt es bei so großer Größe eine Rolle?
2) Warum sollten wir immer noch die Verwendung FORMAT()
in SQL Server anstelle der folgenden Verkettung von Zeichenfolgen empfehlen? Da unten nur die 2-fache Datengröße angegeben ist und die Verwendung des Formats die 250-fache Datengröße zurückgibt. ODER ist diese Datengröße keine kritische Messung?
SELECT '$' + CONVERT(varchar(10), UnitPrice) FROM Sales.SalesOrderDetail;
3) Bedeutet eine Datengröße von 464 MB, dass ich 464 MB Daten an den Client zurückgeben werde?
================================================== ======
Unten sind meine Ergebnisse mit der AdventureWorks2012-Datenbank.
SELECT UnitPrice FROM Sales.SalesOrderDetail;
Tatsächliche Anzahl der Zeilen: 121317
Geschätzte Anzahl der Zeilen: 121317
Geschätzte Zeilengröße : 15B
Geschätzte Datengröße: 1777 KB
SELECT '$' + CONVERT(varchar (10), UnitPrice) FROM Sales.SalesOrderDetail;
Tatsächliche Anzahl der Zeilen: 121317
Geschätzte Zeilengröße : 26B
Geschätzte Datengröße: 3060 KB
SELECT FORMAT(UnitPrice, 'c') FROM Sales.SalesOrderDetail;
Tatsächliche Anzahl der Zeilen: 121317
Geschätzte Zeilengröße: 4011B
Geschätzte Datengröße: 464 MB
quelle