2015年4月17日 星期五

[讀書心得]資料分頁的最佳化,以SQL 2012的 OFFSET-FETCH為例

MIS2000 Lab.文章備份(原文出自)

[讀書心得]資料分頁的最佳化,以SQL 2012的 OFFSET-FETCH為例

http://www.dotblogs.com.tw/mis2000lab/archive/2015/04/10/sql_querying_paging_offset-fetch.aspx


這篇文章源自微軟出版社(Microsoft Press)
2015年的新書 -- T-SQL Querying

T-SQL Querying
  • Published 3/6/2015
  • 1st Edition
  • 864 pages
  • Book 978-0-7356-8504-8
  • eBook 978-0-13-398664-8



微軟網站已經公開了 這一章 的全文,請看


第二頁裡面 介紹資料庫分頁的SQL指令,
包含 TOP、ROW_NUMBER(SQL 2005 起可用)、OFFSET-FETCH(SQL 2012 起可用)

因為我們公司都改成SQL 2012版了,所以我只摘錄 OFFSET-FETCH的部分

====================================================================
SQL 2012起 多了OFFSET-FETCH的作法,
比起上述的TOP、ROW_NUMBER更簡單而且更強。
底下是一般的作法(尚未最佳化),跟前面章節的範例雷同:
-- 註解:改良後的預存程序(尚未最佳化)。
CREATE PROC dbo.GetPage5
  @pagenum  AS BIGINT = 1,
  @pagesize  AS BIGINT = 25
AS
SELECT orderid, orderdate, custid, empid
FROM dbo.Orders
ORDER BY orderid
OFFSET (@pagenum - 1) * @pagesize ROWS FETCH NEXT @pagesize ROWS ONLY;
GO
-- 註解:執行這一段預存程序。
EXEC dbo.GetPage5 @pagenum = 1, @pagesize = 25;
EXEC dbo.GetPage5 @pagenum = 2, @pagesize = 25;
EXEC dbo.GetPage5 @pagenum = 3, @pagesize = 25;
下圖是簡單的解說,讓您瞭解 OFFSET-FECTCH的用法
我們可以進一步修正如下,讓搜尋的效能更好。
根據微軟出版書籍所做的測試,在您閱覽第一千頁的資料時,下面的寫法只需邏輯讀取241次,
而上述的寫法卻要76,644次,效能大幅提昇了。
-- 註解:改良後的預存程序(最佳化)。
CREATE PROC dbo.GetPage6
  @pagenum  AS BIGINT = 1,
  @pagesize  AS BIGINT = 25
AS
WITH K AS   -- Define a table expression based on this query (call it K, for keys).
(
  SELECT orderid
  FROM dbo.Orders
  ORDER BY orderid
  OFFSET (@pagenum - 1) * @pagesize ROWS FETCH NEXT @pagesize ROWS ONLY
)
SELECT O.orderid, O.orderdate, O.custid, O.empid
FROM dbo.Orders AS O
  INNER JOIN K
    ON O.orderid = K.orderid
ORDER BY O.orderid;
GO
-- 註解:執行這一段預存程序。
EXEC dbo.GetPage6 @pagenum = 3, @pagesize = 25;

====================================================================
如果您想進一步瞭解裡面的原理
就直接看微軟公開的這一章吧,
共有六頁,寫得很詳盡!
本站已發表的相關文章 -- 

Model Binding入門、簡介、初試身手 #2 -- Web Form分頁與 IQueryable (不使用EF)



ASP.NET課程 / ASP.NET教學,請看
    http://www.dotblogs.com.tw/mis2000lab/archive/2011/06/24/29807.aspx

    [台北] ASP.NET入門實戰 + ADO.NET進階【二合一】49 hr


ASP.NET影片、遠距教學,請看:
    http://www.dotblogs.com.tw/mis2000lab/archive/2015/03/09/aspnet-online-learning-distance-education-2015.aspx

    [遠距教學、教學影片] ASP.NET (Web Form) 六週課程 上線了!


會寫網頁 就會寫手機APP -- Hybrid Mobile Apps for ASP.NET Developers

這是文章備份,原文出自我的網站  http://www.dotblogs.com.tw/mis2000lab/archive/2015/04/17/aspnet_apache_cordova.aspx

會寫網頁 就會寫手機APP -- Hybrid Mobile Apps for ASP.NET Developers



微軟提供的PDF文章與範例是2015 四月初發表的
很特別的是:
    我並 "不是"在MSDN上找到
    而是在網頁廣告中發覺這個東西

微軟為了推廣,花錢 "買廣告"來Promote。可見微軟對這件事的重視!

請您直接下載範例與PDF文章(介紹)
Hybrid Mobile Apps for ASP.NET Developers
微軟的中文翻譯成: (多重裝置混合式應用程式) 

建議您使用 VS 2015(2015年二月 已經有CTP 6版推出了)
===============================================================================
FAQ -- Apache Cordova 與 PhoneGap 有什麼不同?

Apache Cordova 希望作到以HTML、CSS、JavaScript就能做出原生的(Native)Mobile APP
文章裡面有提到:有家公司名為 Nitobi,他們做了一個開放原始碼(Open Source)的
「多平台 行動研發架構(multiplatform mobile development framework)」,也就是  PhoneGap。

後來這家公司被 Adobe購併
Apache基金會就把專案改了名字,變成 Apache Cordova
(玩 Linux / PHP的朋友,應該對於 Apache很熟悉吧?)

===============================================================================
微軟的Visual Studio也提供相關的工具 -- Visual Studio Tools for Apache Cordova

下面的文章是搭配 VS 2013版的,跟上述搭配VS 2015的文章略有不同。
尤其是工具的安裝、安裝順序......請留意~

支援的 Mobile OS列表:
  • Android 2.3.3 and later (4.4 provides the best developer experience)
  • iOS 6, 7, and 8
  • Windows 8 and 8.1
  • Windows Phone 8 and 8.1

您安裝VS 2015應該也會裝進這工具    (點選下面圖片,可連結原廠網站)
上述的工具,請搭配這些作業系統:Windows 7、Windows 8、Windows 8.1 或 Windows Server 2012 R2。
注意!!如果您使用 Windows 7,可以開發 Android 和 iOS 的應用程式,
             但無法開發 Windows 或 Windows Phone 的應用程式。

(圖片來源,下面的影片 -- Channel 9)
===============================================================================
當您開啟一個「新專案」,
    請到 (左側)JavaScript 分類底下,找到「Apache Cordova Project」專案
建立新的多裝置混合應用程式專案

原始的檔案(.html)如下,您可以看見有幾個 .js的檔案在內,特別是 Cordova.js
(圖片來源,下面的影片 -- Channel 9)

微軟在 Channel 9有教學影片,請看:


請您直接下載範例與PDF文章(介紹)
Hybrid Mobile Apps for ASP.NET Developers
這篇PDF文檔,很淺顯易懂,只有20幾頁
您就算不看文字,看圖片、程式碼也知道大致的流程
有空的話.....我不敢保證。有空的話,我也來翻譯成中文)


這是文章備份,原文出自我的網站  http://www.dotblogs.com.tw/mis2000lab/archive/2015/04/17/aspnet_apache_cordova.aspx

會寫網頁 就會寫手機APP -- Hybrid Mobile Apps for ASP.NET Developers



ASP.NET課程 / ASP.NET教學,請看
    http://www.dotblogs.com.tw/mis2000lab/archive/2011/06/24/29807.aspx

    [台北] ASP.NET入門實戰 + ADO.NET進階【二合一】49 hr


ASP.NET影片、遠距教學,請看:
    http://www.dotblogs.com.tw/mis2000lab/archive/2015/03/09/aspnet-online-learning-distance-education-2015.aspx

    [遠距教學、教學影片] ASP.NET (Web Form) 六週課程 上線了!



2015年4月13日 星期一

[售] ACER 4代i5 輕薄翻轉 FHD 筆電 R13 (SSD固態硬碟 256GB)

[售] ACER 4代i5 輕薄翻轉 FHD 筆電 R13 (SSD固態硬碟 256GB)


http://www.dotblogs.com.tw/mis2000lab/archive/2015/03/29/acer_r13_nb_tablet.aspx


出售 -- ACER 4代i5 輕薄翻轉 FHD筆電 R13(R7-371T)
i5-4210U(1.7GHz/2.7GHz)
13.3" FHD 10點觸控(w/ IPS技術)(LED背光)
Full-HD解析度 1920 x 1080
 
W8.1ML64作業系統
IntelR HD Graphics 4400
 
1x 8GB DDR3L(onboard)
256GB SSD 硬碟
Office 試用版(需下載)/McAfee防毒一年
 
1.5 kg(w/ 4 cell Battery)
 
日前透過管道團購
但因為一位朋友反悔了  所以手上多出一台
 
三萬一(含發票、含宅配運費),保固兩年
只有驗貨時, 現場拆機
 
有意願購買的朋友  可以與我聯絡 
 
mis2000lab  (at) yahoo.com.tw  (LINE or Mail)    (at) 代表 @符號
 
 
查過 Yahoo拍賣與露天,含稅價我最便宜。
 
原廠出貨,一定要給發票
發票日(起)兩年的保固,無發票的話,以機器出廠日算起,會吃虧喔!
 
 

Aspire R 13

靈活設計,絕品工藝,不凡創意
Aspire R 13 具有智慧設計與多項聰明功能, 以及引領潮流的 Ezel Aero 雙軸承™ 設計,讓您輕鬆切換六種不同的使用者模式,工作得心應手、娛樂歡暢盡興! Aspire R 13 筆記型電腦配備 Corning® Gorilla® Glass 3 FHD 螢幕,讓您的生活就此改變!


 
 
 
 
 

[售] ACER 4代i5 輕薄翻轉 FHD 筆電 R13 (SSD固態硬碟 256GB)


http://www.dotblogs.com.tw/mis2000lab/archive/2015/03/29/acer_r13_nb_tablet.aspx


[範例下載] HTML5、CSS、JavaScript 網頁程式設計與 MCSD 70-480 認證教材 (碁峰)


[範例下載] HTML5、CSS、JavaScript 網頁程式設計與 MCSD 70-480 認證教材 (碁峰)


http://www.dotblogs.com.tw/mis2000lab/archive/2015/04/13/html5_css_javascript_mcsd_70-480_exam.aspx


HTML5、CSS、JavaScript 網頁程式設計與 MCSD 70-480 認證教材
 
MIS2000 Lab. 周棟祥/吳進魯
出版商: 碁峰
 
 
 
Ael017000

HTML5、CSS、JavaScript 網頁程式設計與 MCSD 70-480 認證教材

MIS2000 Lab. 周棟祥/吳進魯

  • 出版商:碁峰
  • 出版日期:2015-04-09
  •  
  • 語言:繁體中文
  • ISBN:9863475750
  • ISBN-13:9789863475750





關於這本書的介紹,可以參閱我以前發表過的文章

第一次參加微軟認證考試(如何報名,以Prometric為例)


**********************************************************************************************************************
我要買書:
**********************************************************************************************************************
 
 
關於考證照這回事,我覺得「心態」最重要
 
請看下面的說法: