Frage : Größe der Daten zurückgebracht durch eine Frage

wie Sie die Größe der Daten finden können, die eine Frage zurück holt:
select col1, col2….col12 vom tablea
how kann Sie wissen, wieviele Bytes Daten durch die oben genannte Frage zurückgebracht?

statistics io gibt nicht dieses Info.

thanks

Antwort : Größe der Daten zurückgebracht durch eine Frage

Möglicherweise etwas Ähnliches (dieses arbeitet nicht an Systemstabellen, gerade Anwendertabellen). Dieses ist von AdventureWorks Beispieldb. Einen Blick an der letzten Spalte im Bild nehmen

das @exec erklären, das varchar ist (maximal)
@table sysname erklären
@schema sysname erklären

@table einstellen = „Angestellter“
@schema einstellen = „Personal“
AUSERWÄHLTES @exec = ERSETZEN (ERSETZEN (ERSETZEN („vorwählen *, DataLen=@calc VON [@schema]. [@table]“,
                 „@calc“, dbo.GetDataLenList (@table)),
                 „@table“, @table),
                 „@schema“, @schema)

Druck @exec
exec (@exec)
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
FUNKTION [GetDataLenList] VERURSACHEN (
  @TableName SYSNAME
) RÜCKKEHR VARCHAR (MAX) WIE ANFANGEN

  @COUNT INT ERKLÄREN
  @CTR INT   ERKLÄREN
  @COLNAME SYSNAME ERKLÄREN
  @SCHEMA SYSNAME  ERKLÄREN
  @SQL VARCHAR     (MAX) ERKLÄREN
  @SQLEXEC VARCHAR (MAX) ERKLÄREN

  @COLS TABELLE ERKLÄREN (
    IDENTITÄT         IDENTIFIKATION-INT (1, 1),
    ColumnName NVARCHAR (128),
    SchemaName NVARCHAR (128)
  )
  
  EINSATZ IN @COLS 
  COLUMN_NAME, TABLE_SCHEMA VORWÄHLEN
    VON INFORMATION_SCHEMA.COLUMNS 
   WO TABLE_NAME = @TABLENAME 

  @sql EINSTELLEN = ''
  @COUNT = ZÄHLIMPULS (*) VON DEN @COLS VORWÄHLEN
  @ctr EINSTELLEN = 1
  WÄHREND @CTR <> 1 ANFANGEN
       @sql = @sql EINSTELLEN + „+“
     ENDE
     @sql = @sql EINSTELLEN + ERSETZT („ISNULL (DATALENGTH (@@colName@@), 0)“, „@@colName@@“, QuoteName (@colName))
    @ctr = @ctr EINSTELLEN + 1
  ENDE
  RÜCKHOL@sql
ENDE
Weitere Lösungen  
 
programming4us programming4us