Solution for Slow logon via Remote Desktop to Server 2012: Disable the Large Send Offload
Recently, I found it became very slow when I am logging onto my development VM, a windows server 2012R2 instance through Remote Desktop. There are many kinds of solutions in Google's search results. I tried many of them and found only this one suits me.
On the Windows Server 2012 machine, disable the Large Send Offload via the following steps:
Open Network Connections.
Click Change adapter settings
Right-click the icon of the Network card and select Properties.
In Networking tab, click Configure… button.
In the next window, switch to Advanced tab.
Click the Large Send Offload Version 2 (IPv4) and change the value to Disabled.
Click the Large Send Offload Version 2 (IPv6) and change the value to Disabled.
Your RDP connection will disconnect right away after you apply the change. Don't worry, connect it back and you will find the annoying delay disappears!
CTE 101
Today I first learnt the concept of CTE (Common Table Expression) from my colleague Rod. Basically, CTE can be used to improve the readability of your long and complex SQL statement.
for example, without CTE, you might write the following SQL:
CREATE OR REPLACE VIEW dfx.test_vw123 AS
SELECT
a.FIELD_A,
a.FIELD_B,
b.FIELD_C
b.FIELD_D
FROM (
SELECT
MAX(FIELD_A) AS FIELD_A,
COUNT(*) AS FIELD_B
FROM TABLE_A ta
WHERE ta.FIELD_E = 'General'
GROUP BY ta.FIELD_F
) a
LEFT JOIN TABLE_A b
ON a.FIELD_A = b.FIELD_A
with CTE, you could write the following one with better readability.
CREATE OR REPLACE VIEW dfx.test_vw123 AS
WITH TABLE_A_STATS AS (
SELECT
MAX(FIELD_A) AS FIELD_A,
COUNT(*) AS FIELD_B
FROM TABLE_A ta
WHERE ta.FIELD_E = 'General'
GROUP BY ta.FIELD_F
)
SELECT
a.FIELD_A,
a.FIELD_B,
b.FIELD_C
b.FIELD_D
FROM TABLE_A_STATS a
LEFT JOIN TABLE_A b
ON a.FIELD_A = b.FIELD_A;
For further information about CTE, click Reference
I also found another article about CTE in Chinese.