Molte operazioni matematiche (come divisione, moltiplicazione, ecc.) dovrebbero essere calcolate più velocemente quando si ha a che fare con la potenza di due numeri (C ++, C #?, ...)
Ad esempio 15 * 256 = 0x0e spostato a destra (veloce) 8 bit = 0x0e00 = 3840
Considerando che 15 * 255 = 0x0e moltiplicato per (lento) 0xff = 0x0ef1 = 3825
Questo tipo di ottimizzazione si verifica anche in SQL Server?
Non credo che ci sia, ho provato a misurare una differenza di tempo di esecuzione di query come quelle:
SET STATISTICS TIME ON
SELECT
AVG(N / 256)
FROM DBO.V_VIRTUAL_NUMBERS
WHERE N < 1048576
SELECT
AVG(N / 255)
FROM DBO.V_VIRTUAL_NUMBERS
WHERE N < 1000000
SET STATISTICS TIME OFF
che ha provocato:
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.
(1 row(s) affected)
SQL Server Execution Times:
CPU time = 203 ms, elapsed time = 207 ms.
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.
(1 row(s) affected)
SQL Server Execution Times:
CPU time = 218 ms, elapsed time = 206 ms.