㈠ 讀取sqlserver資料庫中數據,出現」無效的描述符索引「錯誤...
不知道你用的什麼語言,根據提示,你的數組索引超出了!
你不如改下:
int intCount=m_stu_scoreSet.GetRecordCount();
for (int j=0;j<intCount;j++)
{
CString temp;
m_stu_scoreSet.GetFieldValue("學號",temp);//讀出學號
m_List1.InsertItem(j,temp);
m_List1.SetItemText(j,1,m_stu_scoreSet.m_name);//讀出姓名
m_stu_scoreSet.GetFieldValue("總分",temp);//讀總分
m_List1.SetItemText(j,2,temp);
m_stu_scoreSet.GetFieldValue("平均分",temp);//讀平均分
m_List1.SetItemText(j,3,temp);
m_stu_scoreSet.MoveNext();
}
或者是你的:
m_List1.SetItemText(j,3,temp);
3超過了,按理來說應該從0開始,你改下試試!
m_List1.SetItemText(j,0,m_stu_scoreSet.m_name);//讀出姓名
m_stu_scoreSet.GetFieldValue("總分",temp);//讀總分
m_List1.SetItemText(j,1,temp);
m_stu_scoreSet.GetFieldValue("平均分",temp);//讀平均分
m_List1.SetItemText(j,2,temp);
㈡ 為什麼我在Sql Server上創建的索引用不上
只要你定義的索引的欄位 在where的條件中出現,sqlserver會自動判斷並使用索引的。
㈢ sql 創建聚集索引和非聚集索引失敗
你這是sqlserver的腳本在oracle跑的結果
聚集和非聚集索引是SQLSERVER里的概念,對應的ORACLE里的 可以參考了解下
SQLSERVER 里的非聚集索引 -> ORACLE里的 堆表的普通索引
SQLSERVER 里的聚集索引 -> ORACLE里的 索引組織表
㈣ SQLSERVER如何查看索引缺失及DMV使用介紹
好在SQLSERVER提供了兩種「自動」功能,給你建議,該怎麼調整索引第一種是使用DMV第二種是使用DTA (database engine tuning advisor) 資料庫引擎優化顧問這篇文章主要講第一種從SQL2005以後,在SQLSERVER對任何一句語句做編譯的時候,都會去評估一下,這句話是不是缺少什麼索引的支持,如果他認為是,他還會預估,如果有這麽一個索引他的性能能提高多少SQLSERVER有幾個動態管理視圖sys.dm_db_missing_index_detailssys.dm_db_missing_index_groupssys.dm_db_missing_index_group_statssys.dm_db_missing_index_columns(index_handle)sys.dm_db_missing_index_details這個DMV記錄了當前資料庫下所有的missing index的信息,他針對的是SQLSERVER從啟動以來所有運行的語句,而不是針對某一個查詢。DBA可以看看,哪些表格SQLSERVER對他是最有「意見」的以下是這個DMV的各個欄位的解釋:1、index_handle:標識特定的缺失索引。該標識符在伺服器中是唯一的。index_handle 是此表的密鑰2、database_id :標識帶有缺失索引的表所駐留的資料庫3、object_id :標識索引缺失的表4、equality_columns:構成相等謂詞的列的逗號分隔列表 即哪個欄位缺失了索引會在這里列出來(簡單來講就是where 後面的篩選欄位),謂詞的形式如下:table.column =constant_value5、inequality_columns :構成不等謂詞的列的逗號分隔列表,例如以下形式的謂詞:table.column > constant_value 「=」之外的任何比較運算符都表示不相等。6、included_columns:用於查詢的涵蓋列的逗號分隔列表(簡單來講就是 select 後面的欄位)。7、statement:索引缺失的表的名稱比如下面這個查詢結果那麼應該創建這樣的索引 復制代碼 代碼如下:CREATE INDEX idx_SalesOrderDetail_test_ProctID_IncludeIndex ON SalesOrderDetail_test(ProctID) INCLUDE(SalesOrderID) 在ProctID上創建索引,SalesOrderID作為包含性列的索引 注意事項:由sys.dm_db_missing_index_details 返回的信息會在查詢優化器優化查詢時更新,因而不是持久化的。缺失索引信息只保留到重新啟動 SQL Server 前。如果資料庫管理員要在伺服器回收後保留缺失索引信息,則應定期製作缺失索引信息的備份副本sys.dm_db_missing_index_columns(index_handle)返回與缺少索引(不包括空間索引)的資料庫表列有關的信息,sys.dm_db_missing_index_columns 是一個動態管理函數欄位解釋index_handle:唯一地標識缺失索引的整數。sys.dm_db_missing_index_groups返回有關特定缺失索引組中包含的缺失索引(不包括空間索引)的信息sys.dm_db_missing_index_group_stats返回缺失索引組的摘要信息,不包括空間索引這個視圖說白了就是預估有這麽一個索引,他的性能能提高多少有一個欄位比較重要:avg_user_impact: 實現此缺失索引組後,用戶查詢可能獲得的平均百分比收益。該值表示如果實現此缺失索引組,則查詢成本將按此百分比平均下降。就是說,增加了這個缺失索引,性能可以提高的百分比下面是MSDN給出的示例,缺失索引組句柄為 2 復制代碼 代碼如下:--查詢提供缺失索引的資料庫、架構和表的名稱。它還提供應該用於索引鍵的列的名稱
㈤ sqlserver索引問題求高手解惑!
第一種是兩個欄位分別建立索引,在查詢時兩個欄位上的索引都能起到一定的作用
第二種是覆蓋索引,其索引效果只有第一欄位有效,其餘欄位只是作為「附屬品」,
如果只以outUnitId為條件查詢,若查詢出的欄位中包含inUnitId欄位,那麼第二個索引較快
若不包含則一樣,若兩個欄位同時為查詢條件,則第一個索引較快
㈥ SQLSERVER索引在什麼情況下會失效
1、索引列有函數處理或隱式轉換,不走索引
2、索引列傾斜,個別值查詢時,走索引代價比走全表掃描高,所以不走索引
3、索引列沒有限制 not null,索引不存儲空值,如果不限制索引列是not null,oracle會認為索引列有可能存在空值,所以不會按照索引計算)
㈦ sqlserver索引超出了數組界限如何解決
怕不是用sql server 2008R2的查詢分析器打開高版本的sql server 資料庫吧。
你可以無視錯誤直接打SQL,只是部分功能如sql server 代理不能使用而已。
想解決就裝一下更高版本的查詢分析器吧。
㈧ 關於SQLServer 2000 索引問題
沒法解決!
每日寫入10萬左右,1d=24H=24*60m=24*60*60s=86400s 這才8萬多條記錄,每秒鍾至少寫入一條記錄,這個已經不是關系庫可以承受的了。
你該跟領導說明情況,讓他知道還有個「實時資料庫」,這個才是解決辦法。
如PI、eDNA等實時庫才是能承受。
別說sql2000性能不好,就算用oracle11r2也不成。
如果非得用關系庫,那就考慮分表吧。
例如:主鍵一般都是有含義的,如 年份+序號,字母+序號..按照某一規律進行分表,然後將各分表連接做成一個視圖。
㈨ 關於SqlServer索引問題
要不要建索引,首先要看你的數據量如何,如果數據量不大,就沒有必要建立索引了,因為作用不大,還增加了索引的維護工作。
另外所謂根據select語句建立索引,就是對你經常查詢的列來建立索引,如果你建立了一個索引,可是在你的select語句中很少用到這個索引,那就沒有必要了。具體方法是看你的select語句中的where子句條件是針對哪個欄位的,就對這個欄位建立索引。
㈩ mssql查詢問題
1.如樓上二位,加索引
註:一樓方式影響速度的地方:
1.1 like 會讓索引失效
1.2 like 能換成 = 么?
1.3 索引建立,該欄位是否是not null 的。如果不是,索引失效。
2.讀出來放在內存中,操作內存。
比如:資料庫n條數據。全部讀取放在一個內存中。
現在要插入。去內存中判斷,可以插入的話,
同時插入內存,和資料庫。
3.用的什麼資料庫?sqlserver?
-----------
over,希望對你有用。