1
我有一個存儲過程,將根據數據庫設置將某些動態sql轉換爲臨時表或視圖。這用於根據數據大小「調整」不同客戶端之間的數據庫功能,即臨時表需要更長的時間才能創建,但需要更長時間才能完成設置,視圖快速創建,但讀取時間稍長。選擇到內存優化表
我正在研究擴展它以包含內存優化表的一個選項,但無法看到如何使用內存優化表而無需首先聲明它。
我此刻的代碼將是一個格式,如:
SELECT TOP 10 *
INTO FavoriteCustomers
FROM Customers
ORDER BY Spend DESC
正如你可以看到我不聲明表,只用SELECT INTO。有什麼辦法可以選擇進入內存優化表?我可以使用:
sys.dm_exec_describe_first_result_set(@mySQLhere)
這讓我對我通過在TSQL列定義,然後使用這些信息來預先創建表並插入到它,但我希望如果可能的話巧妙的方法。
有沒有人有任何解決方案?搜索只是讓我走上了如何將數據添加到MOT而非MOT創建中作爲選擇的一部分。
我知道這可能是不可能的,而且我確實有所描述的工作,我只是覺得我可能在這裏錯過了一個更好的選擇。
目前使用多個服務器,MOT功能僅在SQL2016上實現。
非常感謝提前。
我正在尋找類似的嘗試,並強制執行查詢以某種順序而不會失去性能。我想他們會在這篇文章中提到這樣一個解決方案,即如果它存在,用內存優化表替換臨時表:https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/更快的臨時表和表可變的使用內存優化 – user1378730
我從來沒有找到一個很好的解決這個問題。我最終創建了表格,然後使用標準插入查詢。它工作正常。我將發佈我的代碼作爲答案。 –