Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Индексы баз MSSQL  [new]
slimss
Member

Откуда:
Сообщений: 43
Как узнать место хранения индексов баз?
Так же вопрос как перенести данные индексы на ramdisk.

Но больше всего интересует место их хранение и смена места их хранения.
6 ноя 11, 17:16    [11555020]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
aleks2
Guest
slimss
Так же вопрос как перенести данные индексы на ramdisk.

Нинада этого делать, если ваша база вам дорога как память.
6 ноя 11, 17:19    [11555027]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
slimss
Member

Откуда:
Сообщений: 43
При шкале в 4000 игроков у меня база не успевает записывать данные.
Идёт скачек, и игроков начинает фризить. Потому решил индексы баз засунуть на рамдиск.
Это укорит обработку данных.
Бекапы буду просто делать каждые 15 минут.

Или все сделать так или я потеряю часть игроков. Для меня это критично.
Потому и спрашиваю.


Может кто то предложит другие альтернативы как ускорить запись в базу данных??
6 ноя 11, 17:36    [11555076]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
aleks2
Guest
Для альтернативных саветофф, надо бы изложить:
1. Чо вы там фставляете и в каких количествах.
2. Наскока сильно вы способны вмешаться в процесс фставляния.

ЗЫ. А ваша идея, адын хрен, не проканает. Ибо вам при каждом старте сервера придется разворачивать бэкап.
6 ноя 11, 17:49    [11555102]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
slimss
При шкале в 4000 игроков у меня база не успевает записывать данные.
Идёт скачек, и игроков начинает фризить. Потому решил индексы баз засунуть на рамдиск.
Это укорит обработку данных.
Бекапы буду просто делать каждые 15 минут.

Или все сделать так или я потеряю часть игроков. Для меня это критично.
Потому и спрашиваю.


Может кто то предложит другие альтернативы как ускорить запись в базу данных??

Разнесите базу, логи на разные диски (по возможности RAID10). Если вам уж сильно хочется перенести индексы в другую файловую группу (на отдельный диск), то вот скрипт определения. местоположения
select 	
		SCHEMA_ID(OBJECT_SCHEMA_NAME(ix.object_id,DB_ID())) as [schema_id],		
		OBJECT_SCHEMA_NAME(ix.object_id,DB_ID()) as [schema_name],
		ix.object_id as [object_id],
		OBJECT_NAME(ix.object_id) as [object_name],
		ix.index_id as [index_id],
		ix.Name as [index_name],
		ix.type,
		ix.type_desc,
		ix.is_unique,
		ix.data_space_id,
		case ds.type
			when 'FG' then ds.name
			when 'PS' then (select distinct name from sys.partition_schemes where data_space_id = ix.data_space_id)
		end as data_space,
		isnull((select fanout from sys.partition_functions prtfn
									join sys.partition_schemes as prtsch on prtfn.function_id = prtsch.function_id
									where prtsch.data_space_id =  ix.data_space_id),0) as part_number,
		ix.ignore_dup_key,
		ix.is_primary_key,
		ix.is_unique_constraint,
		ix.fill_factor,
		ix.is_padded,
		ix.is_disabled,
		ix.is_hypothetical,		
		ix.allow_row_locks,
		ix.allow_page_locks,
		ix.has_filter,
		ix.filter_definition
	
from sys.indexes as ix
join sys.data_spaces as ds on ds.data_space_id = ix.data_space_id
по поводу переноса, тут такая ситуация.
1. Перенос некластерных индексов осуществляется их пересозданием с указанием файловой группы.
2. Перенес кластерного индекса (не первичного ключа) осуществляется пересозданием с указанием файловой группы, но тогда все данные таблицы будут храниться в этой файловой группе.
3. Перенос индекса являющимся первичным ключом осуществляется его пересозданием, но если на него ссылаются внешние ключи, то удалить его не получиться.
Как альтернатива вынести файл логов на более шустрый диск (RAID).
У меня база OLTP 350-400 Гб. На двух дисках (RAID10, 10 дисков в каждом) нормально так живет. Нагрузка от 500 - 750 пользователей в час пик бывает и под 1000. 2500 Мб активных транзакция за 15 мин. Нормально живет. И по дискам если смотреть среднюю очередь и среднюю скорость записи/чтения выходит на 40% нагрузки, только при параллельном запуске бекапа в часы пик. Правда 25-30% отъедает реиндекс.
Так же, если контроллер дисков мощный, есть смысл добавить в файл группу файл и распределить данные между файлами.
6 ноя 11, 21:33    [11555587]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
slimss
Может кто то предложит другие альтернативы как ускорить запись в базу данных??

Измерьте производительность дисковой системы в часы пик. Может дело и не в ней.
6 ноя 11, 22:05    [11555655]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
slimss
Member

Откуда:
Сообщений: 43
У меня 3 сервера, в первый раз я взял рейд 10 (4 ssd), сейчас хочу опробовать альтернативу.
Под запрос мне сделали два диска в рейде нулевом.
Один на 500 гб и второй на 500.
Я хочу разметить серверную часть и винду на одном, а на второй базы. Я с начало думал о рам, но при попытке создать базу на раме мне выбивает ошибку секторности диска. Потому вариант отпал.
Последний возможный. я описал выше с двумя разными дисками.

Я спрашиваю у людей которые разрабатывали код игры. Сказали что проблема с базами. Так что возможные варианты все еще ищю.
7 ноя 11, 01:04    [11555983]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
slimss
Member

Откуда:
Сообщений: 43
Кстати я сделал так что бы файлы логов не записывались, потому что за 2 дня работы сервера логи выросли на 25гб. Я сделал индексацию и дифрагментацию базы. Лаги не убрались. Что решил испытать написал выше.
7 ноя 11, 01:06    [11555986]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
slimss
Кстати я сделал так что бы файлы логов не записывались, потому что за 2 дня работы сервера логи выросли на 25гб. Я сделал индексацию и дифрагментацию базы. Лаги не убрались. Что решил испытать написал выше.

Ну во первых файл логов пишется всегда, другое дело что в режиме Симпл он автоурезается после checkpoint, а в Фулл - надо делать бекап логово. Во вторых, ну снимите статистику производительности основных параметров скуля, и посмотрите где затык.
7 ноя 11, 09:13    [11556193]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
ABC_1982
Member

Откуда: Москва
Сообщений: 418
slimss
Кстати я сделал так что бы файлы логов не записывались, потому что за 2 дня работы сервера логи выросли на 25гб. Я сделал индексацию и дифрагментацию базы. Лаги не убрались. Что решил испытать написал выше.

Наймите грамотного админа БД на разовую работу по анализу текущей ситуации и устранению узких мест.

Дешевле обойдется в итоге. Причем в разы, а то и на порядки дешевле.
7 ноя 11, 09:21    [11556210]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
slimss
Member

Откуда:
Сообщений: 43
Посоветовать спеца можете?
7 ноя 11, 11:19    [11556716]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
slimss
Посоветовать спеца можете?


а напишите в резделе "Работа" - заодно и сколько денег е напишите :)

если по деньгам нормано = то и спец найдется быстро :)
7 ноя 11, 11:52    [11556991]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
а вообще любая задача оптимизации начинается с поиска узких мест... но если Вы понимаете что это дисковая подсистема - то надо ее и решать (ramdisk не выход!!!)
7 ноя 11, 11:55    [11557014]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
slimss
Member

Откуда:
Сообщений: 43
SanyL
slimss
Посоветовать спеца можете?


а напишите в резделе "Работа" - заодно и сколько денег е напишите :)

если по деньгам нормано = то и спец найдется быстро :)


По деньгам уже должен спец сказать, с условием что это поможет.
7 ноя 11, 12:04    [11557084]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
slimss
SanyL
пропущено...


а напишите в резделе "Работа" - заодно и сколько денег е напишите :)

если по деньгам нормано = то и спец найдется быстро :)


По деньгам уже должен спец сказать, с условием что это поможет.


полагаю Вы не представляете порядок суммы которую могут назвать ;) поэтому и рекомендую назначить некоторый бюджет за эту голову... но скорее всего упретесь в дисковую подсистему, которую будет рекомендовано Вам модернизировать :)

А условие, что это поможет вообще расплывчатое... трудно сказать, вот например 1С - там можно решить проблемы с железом если они возникают, но оптимизировать код - нет; соответственно решили проблему по железу и "работа сервера ускорилась" на 2% - это помогло? а спрогнозировать прирост производительности заранее скорее всего не получится.
7 ноя 11, 12:38    [11557374]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
slimss
Member

Откуда:
Сообщений: 43
Нашел причину проблем.

Все дело в этой процедуре.
Как только программа делает запрос к этой процедуре и получается такой фриз.
Может кто скажет как можно такой запрос оптимизировать?
Или другие варианты ?

USE [lin2world]
GO
/****** Object: StoredProcedure [dbo].[lin_UpdateActiveSkill] Script Date: 11/07/2011 23:15:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: manton
-- Create date:
-- Description: Procedure for new func RequestSaveAbnormalStatus
-- =============================================
CREATE PROCEDURE [dbo].[lin_UpdateActiveSkill]
(
@char_id INT,
@s1 INT, @l1 TINYINT, @d1 INT, @c1 TINYINT,
@s2 INT, @l2 TINYINT, @d2 INT, @c2 TINYINT,
@s3 INT, @l3 TINYINT, @d3 INT, @c3 TINYINT,
@s4 INT, @l4 TINYINT, @d4 INT, @c4 TINYINT,
@s5 INT, @l5 TINYINT, @d5 INT, @c5 TINYINT,
@s6 INT, @l6 TINYINT, @d6 INT, @c6 TINYINT,
@s7 INT, @l7 TINYINT, @d7 INT, @c7 TINYINT,
@s8 INT, @l8 TINYINT, @d8 INT, @c8 TINYINT,
@s9 INT, @l9 TINYINT, @d9 INT, @c9 TINYINT,
@s10 INT, @l10 TINYINT, @d10 INT, @c10 TINYINT,
@s11 INT, @l11 TINYINT, @d11 INT, @c11 TINYINT,
@s12 INT, @l12 TINYINT, @d12 INT, @c12 TINYINT,
@s13 INT, @l13 TINYINT, @d13 INT, @c13 TINYINT,
@s14 INT, @l14 TINYINT, @d14 INT, @c14 TINYINT,
@s15 INT, @l15 TINYINT, @d15 INT, @c15 TINYINT,
@s16 INT, @l16 TINYINT, @d16 INT, @c16 TINYINT,
@s17 INT, @l17 TINYINT, @d17 INT, @c17 TINYINT,
@s18 INT, @l18 TINYINT, @d18 INT, @c18 TINYINT,
@s19 INT, @l19 TINYINT, @d19 INT, @c19 TINYINT,
@s20 INT, @l20 TINYINT, @d20 INT, @c20 TINYINT,
@s21 INT, @l21 TINYINT, @d21 INT, @c21 TINYINT,
@s22 INT, @l22 TINYINT, @d22 INT, @c22 TINYINT,
@s23 INT, @l23 TINYINT, @d23 INT, @c23 TINYINT,
@s24 INT, @l24 TINYINT, @d24 INT, @c24 TINYINT,
@s25 INT, @l25 TINYINT, @d25 INT, @c25 TINYINT,
@s26 INT, @l26 TINYINT, @d26 INT, @c26 TINYINT,
@s27 INT, @l27 TINYINT, @d27 INT, @c27 TINYINT,
@s28 INT, @l28 TINYINT, @d28 INT, @c28 TINYINT,
@s29 INT, @l29 TINYINT, @d29 INT, @c29 TINYINT,
@s30 INT, @l30 TINYINT, @d30 INT, @c30 TINYINT,
@s31 INT, @l31 TINYINT, @d31 INT, @c31 TINYINT,
@s32 INT, @l32 TINYINT, @d32 INT, @c32 TINYINT,
@s33 INT, @l33 TINYINT, @d33 INT, @c33 TINYINT,
@s34 INT, @l34 TINYINT, @d34 INT, @c34 TINYINT,
@s35 INT, @l35 TINYINT, @d35 INT, @c35 TINYINT,
@s36 INT, @l36 TINYINT, @d36 INT, @c36 TINYINT,
@s37 INT, @l37 TINYINT, @d37 INT, @c37 TINYINT,
@s38 INT, @l38 TINYINT, @d38 INT, @c38 TINYINT,
@s39 INT, @l39 TINYINT, @d39 INT, @c39 TINYINT,
@s40 INT, @l40 TINYINT, @d40 INT, @c40 TINYINT
)
AS
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF EXISTS(SELECT * FROM user_activeskill WHERE char_id = @char_id)
BEGIN
UPDATE user_activeskill
SET
s1 = @s1, l1 = @l1, d1 = @d1, c1 = @c1,
s2 = @s2, l2 = @l2, d2 = @d2, c2 = @c2,
s3 = @s3, l3 = @l3, d3 = @d3, c3 = @c3,
s4 = @s4, l4 = @l4, d4 = @d4, c4 = @c4,
s5 = @s5, l5 = @l5, d5 = @d5, c5 = @c5,
s6 = @s6, l6 = @l6, d6 = @d6, c6 = @c6,
s7 = @s7, l7 = @l7, d7 = @d7, c7 = @c7,
s8 = @s8, l8 = @l8, d8 = @d8, c8 = @c8,
s9 = @s9, l9 = @l9, d9 = @d9, c9 = @c9,
s10 = @s10, l10 = @l10, d10 = @d10, c10 = @c10,
s11 = @s11, l11 = @l11, d11 = @d11, c11 = @c11,
s12 = @s12, l12 = @l12, d12 = @d12, c12 = @c12,
s13 = @s13, l13 = @l13, d13 = @d13, c13 = @c13,
s14 = @s14, l14 = @l14, d14 = @d14, c14 = @c14,
s15 = @s15, l15 = @l15, d15 = @d15, c15 = @c15,
s16 = @s16, l16 = @l16, d16 = @d16, c16 = @c16,
s17 = @s17, l17 = @l17, d17 = @d17, c17 = @c17,
s18 = @s18, l18 = @l18, d18 = @d18, c18 = @c18,
s19 = @s19, l19 = @l19, d19 = @d19, c19 = @c19,
s20 = @s20, l20 = @l20, d20 = @d20, c20 = @c20,
s21 = @s21, l21 = @l21, d21 = @d21, c21 = @c21,
s22 = @s22, l22 = @l22, d22 = @d22, c22 = @c22,
s23 = @s23, l23 = @l23, d23 = @d23, c23 = @c23,
s24 = @s24, l24 = @l24, d24 = @d24, c24 = @c24,
s25 = @s25, l25 = @l25, d25 = @d25, c25 = @c25,
s26 = @s26, l26 = @l26, d26 = @d26, c26 = @c26,
s27 = @s27, l27 = @l27, d27 = @d27, c27 = @c27,
s28 = @s28, l28 = @l28, d28 = @d28, c28 = @c28,
s29 = @s29, l29 = @l29, d29 = @d29, c29 = @c29,
s30 = @s30, l30 = @l30, d30 = @d30, c30 = @c30,
s31 = @s31, l31 = @l31, d31 = @d31, c31 = @c31,
s32 = @s32, l32 = @l32, d32 = @d32, c32 = @c32,
s33 = @s33, l33 = @l33, d33 = @d33, c33 = @c33,
s34 = @s34, l34 = @l34, d34 = @d34, c34 = @c34,
s35 = @s35, l35 = @l35, d35 = @d35, c35 = @c35,
s36 = @s36, l36 = @l36, d36 = @d36, c36 = @c36,
s37 = @s37, l37 = @l37, d37 = @d37, c37 = @c37,
s38 = @s38, l38 = @l38, d38 = @d38, c38 = @c38,
s39 = @s39, l39 = @l39, d39 = @d39, c39 = @c39,
s40 = @s40, l40 = @l40, d40 = @d40, c40 = @c40
WHERE char_id = @char_id
END
ELSE
BEGIN
INSERT INTO user_activeskill
(char_id,
s1, l1, d1, c1,
s2, l2, d2, c2,
s3, l3, d3, c3,
s4, l4, d4, c4,
s5, l5, d5, c5,
s6, l6, d6, c6,
s7, l7, d7, c7,
s8, l8, d8, c8,
s9, l9, d9, c9,
s10, l10, d10, c10,
s11, l11, d11, c11,
s12, l12, d12, c12,
s13, l13, d13, c13,
s14, l14, d14, c14,
s15, l15, d15, c15,
s16, l16, d16, c16,
s17, l17, d17, c17,
s18, l18, d18, c18,
s19, l19, d19, c19,
s20, l20, d20, c20,
s21, l21, d21, c21,
s22, l22, d22, c22,
s23, l23, d23, c23,
s24, l24, d24, c24,
s25, l25, d25, c25,
s26, l26, d26, c26,
s27, l27, d27, c27,
s28, l28, d28, c28,
s29, l29, d29, c29,
s30, l30, d30, c30,
s31, l31, d31, c31,
s32, l32, d32, c32,
s33, l33, d33, c33,
s34, l34, d34, c34,
s35, l35, d35, c35,
s36, l36, d36, c36,
s37, l37, d37, c37,
s38, l38, d38, c38,
s39, l39, d39, c39,
s40, l40, d40, c40 )
VALUES
(@char_id,
@s1, @l1, @d1, @c1,
@s2, @l2, @d2, @c2,
@s3, @l3, @d3, @c3,
@s4, @l4, @d4, @c4,
@s5, @l5, @d5, @c5,
@s6, @l6, @d6, @c6,
@s7, @l7, @d7, @c7,
@s8, @l8, @d8, @c8,
@s9, @l9, @d9, @c9,
@s10, @l10, @d10, @c10,
@s11, @l11, @d11, @c11,
@s12, @l12, @d12, @c12,
@s13, @l13, @d13, @c13,
@s14, @l14, @d14, @c14,
@s15, @l15, @d15, @c15,
@s16, @l16, @d16, @c16,
@s17, @l17, @d17, @c17,
@s18, @l18, @d18, @c18,
@s19, @l19, @d19, @c19,
@s20, @l20, @d20, @c20,
@s21, @l21, @d21, @c21,
@s22, @l22, @d22, @c22,
@s23, @l23, @d23, @c23,
@s24, @l24, @d24, @c24,
@s25, @l25, @d25, @c25,
@s26, @l26, @d26, @c26,
@s27, @l27, @d27, @c27,
@s28, @l28, @d28, @c28,
@s29, @l29, @d29, @c29,
@s30, @l30, @d30, @c30,
@s31, @l31, @d31, @c31,
@s32, @l32, @d32, @c32,
@s33, @l33, @d33, @c33,
@s34, @l34, @d34, @c34,
@s35, @l35, @d35, @c35,
@s36, @l36, @d36, @c36,
@s37, @l37, @d37, @c37,
@s38, @l38, @d38, @c38,
@s39, @l39, @d39, @c39,
@s40, @l40, @d40, @c40 )
END
GO
7 ноя 11, 23:28    [11560901]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
slimss,

update + insert when @@rowcount = 0
индексы, триггера проверить
8 ноя 11, 01:58    [11561190]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8879
Индекс на char_id спасёт положение, думаю....
Ибо:
1) лагают существующие юзера а не добавляемые
2) лаги пошли после набора определённого количества юзеров.
============
Подозреваю, что на char_id простто нет индекса. Ваще никакого.

Удачи!
8 ноя 11, 02:44    [11561246]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8879
Хотя, как вариант - акуительный индекс изо всех полей. Клаааастерный.
Короче, скрипт таблицы - в студию...
8 ноя 11, 02:46    [11561249]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
slimss
Member

Откуда:
Сообщений: 43
В данный момент все сделал на рам диске, до выяснения причины лагов.
Таблица.
автор
CREATE TABLE [dbo].[user_ActiveSkill](
[char_id] [int] NOT NULL,
[s1] [int] NULL,
[l1] [tinyint] NULL,
[d1] [int] NULL,
[s2] [int] NULL,
[l2] [tinyint] NULL,
[d2] [int] NULL,
[s3] [int] NULL,
[l3] [tinyint] NULL,
[d3] [int] NULL,
[s4] [int] NULL,
[l4] [tinyint] NULL,
[d4] [int] NULL,
[s5] [int] NULL,
[l5] [tinyint] NULL,
[d5] [int] NULL,
[s6] [int] NULL,
[l6] [tinyint] NULL,
[d6] [int] NULL,
[s7] [int] NULL,
[l7] [tinyint] NULL,
[d7] [int] NULL,
[s8] [int] NULL,
[l8] [tinyint] NULL,
[d8] [int] NULL,
[s9] [int] NULL,
[l9] [tinyint] NULL,
[d9] [int] NULL,
[s10] [int] NULL,
[l10] [tinyint] NULL,
[d10] [int] NULL,
[s11] [int] NULL,
[l11] [tinyint] NULL,
[d11] [int] NULL,
[s12] [int] NULL,
[l12] [tinyint] NULL,
[d12] [int] NULL,
[s13] [int] NULL,
[l13] [tinyint] NULL,
[d13] [int] NULL,
[s14] [int] NULL,
[l14] [tinyint] NULL,
[d14] [int] NULL,
[s15] [int] NULL,
[l15] [tinyint] NULL,
[d15] [int] NULL,
[s16] [int] NULL,
[l16] [tinyint] NULL,
[d16] [int] NULL,
[s17] [int] NULL,
[l17] [tinyint] NULL,
[d17] [int] NULL,
[s18] [int] NULL,
[l18] [tinyint] NULL,
[d18] [int] NULL,
[s19] [int] NULL,
[l19] [tinyint] NULL,
[d19] [int] NULL,
[s20] [int] NULL,
[l20] [tinyint] NULL,
[d20] [int] NULL,
[s21] [int] NULL,
[l21] [tinyint] NULL,
[d21] [int] NULL,
[s22] [int] NULL,
[l22] [tinyint] NULL,
[d22] [int] NULL,
[s23] [int] NULL,
[l23] [tinyint] NULL,
[d23] [int] NULL,
[s24] [int] NULL,
[l24] [tinyint] NULL,
[d24] [int] NULL,
[s25] [int] NULL,
[l25] [tinyint] NULL,
[d25] [int] NULL,
[s26] [int] NULL,
[l26] [tinyint] NULL,
[d26] [int] NULL,
[s27] [int] NULL,
[l27] [tinyint] NULL,
[d27] [int] NULL,
[s28] [int] NULL,
[l28] [tinyint] NULL,
[d28] [int] NULL,
[s29] [int] NULL,
[l29] [tinyint] NULL,
[d29] [int] NULL,
[s30] [int] NULL,
[l30] [tinyint] NULL,
[d30] [int] NULL,
[s31] [int] NULL,
[l31] [tinyint] NULL,
[d31] [int] NULL,
[s32] [int] NULL,
[l32] [tinyint] NULL,
[d32] [int] NULL,
[s33] [int] NULL,
[l33] [tinyint] NULL,
[d33] [int] NULL,
[s34] [int] NULL,
[l34] [tinyint] NULL,
[d34] [int] NULL,
[s35] [int] NULL,
[l35] [tinyint] NULL,
[d35] [int] NULL,
[s36] [int] NULL,
[l36] [tinyint] NULL,
[d36] [int] NULL,
[s37] [int] NULL,
[l37] [tinyint] NULL,
[d37] [int] NULL,
[s38] [int] NULL,
[l38] [tinyint] NULL,
[d38] [int] NULL,
[s39] [int] NULL,
[l39] [tinyint] NULL,
[d39] [int] NULL,
[s40] [int] NULL,
[l40] [tinyint] NULL,
[d40] [int] NULL,
[c1] [tinyint] NULL,
[c2] [tinyint] NULL,
[c3] [tinyint] NULL,
[c4] [tinyint] NULL,
[c5] [tinyint] NULL,
[c6] [tinyint] NULL,
[c7] [tinyint] NULL,
[c8] [tinyint] NULL,
[c9] [tinyint] NULL,
[c10] [tinyint] NULL,
[c11] [tinyint] NULL,
[c12] [tinyint] NULL,
[c13] [tinyint] NULL,
[c14] [tinyint] NULL,
[c15] [tinyint] NULL,
[c16] [tinyint] NULL,
[c17] [tinyint] NULL,
[c18] [tinyint] NULL,
[c19] [tinyint] NULL,
[c20] [tinyint] NULL,
[c21] [tinyint] NULL,
[c22] [tinyint] NULL,
[c23] [tinyint] NULL,
[c24] [tinyint] NULL,
[c25] [tinyint] NULL,
[c26] [tinyint] NULL,
[c27] [tinyint] NULL,
[c28] [tinyint] NULL,
[c29] [tinyint] NULL,
[c30] [tinyint] NULL,
[c31] [tinyint] NULL,
[c32] [tinyint] NULL,
[c33] [tinyint] NULL,
[c34] [tinyint] NULL,
[c35] [tinyint] NULL,
[c36] [tinyint] NULL,
[c37] [tinyint] NULL,
[c38] [tinyint] NULL,
[c39] [tinyint] NULL,
[c40] [tinyint] NULL
) ON [PRIMARY]


У данной таблици есть еще две процедуры Create / Get.


Скинуть сюда ??
8 ноя 11, 06:07    [11561282]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
aleks2
Guest
slimss
В данный момент все сделал на рам диске, до выяснения причины лагов.
Таблица.


SIMPLicity_
простто нет индекса. Ваще никакого.


Угадал. Хе-хе.
8 ноя 11, 07:59    [11561335]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
aleks2
Guest
slimss
В данный момент все сделал на рам диске, до выяснения причины лагов.

Ждем-с тему: Полетел RAM-диск. Помогите, люди добрие, восстановить базу.
8 ноя 11, 08:02    [11561339]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
ABC_1982
Member

Откуда: Москва
Сообщений: 418
slimss
В данный момент все сделал на рам диске, до выяснения причины лагов.

Вы начали с выяснения возможности переноса индексов на другой диск. В итоге выяснили (еще не факт, что правильно), что проблема в отсутствии индекса как такового (хотя сами этого не осознали несмотря на прямые подсказки). И "вылечили" это переносом БД в ОЗУ.

Можно, конечно, и дальше лечить насморк путем освоения методик дыхания через задний проход, но может лучше обратиться к врачу? Особенно с учетом того, что Вы не можете сформулировать правильно симптомы и соответственно в аптеке (т.е. на форуме) сложно дать правильный диагноз.

Может у вас не насморк, а астма, например. Или насморк и еще что-нибудь вдовесок, от чего легко вылечить, но на что Вы не обратили внимание по незнанию.
8 ноя 11, 09:26    [11561488]     Ответить | Цитировать Сообщить модератору
 Re: Индексы баз MSSQL  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8879
aleks2
slimss
В данный момент все сделал на рам диске, до выяснения причины лагов.
Таблица.


SIMPLicity_
простто нет индекса. Ваще никакого.


Угадал. Хе-хе.

Ну, ойпть, "путь кто не апсирался первый кинет гуана не вентилятор!".

slimss, создайте индекс на поле char_id. В принципе, наверное, даже кластерный. Ибо, так понимаю, что прирост у вас не очень большой. Заодно и проверите, нет ли случайно с "мохнатых" времён (по наследству от разработчиков/тестировщиков) дублей в таблице (т.е. записей с идентичными char_id) или с char_id=null... Только строки с null-ами не убивайте - ХЗ как у вас там всё работает... Например, при заведение нового акаунта или ещё чего (типа insert into user_ActiveSkill (char_id,...) select NULL,...; update user_ActiveSkill set char_id=..,... where char_id is NULL - чего тут в форуме только не встречалось )...

Удачи!
PS И уберите файловые группы с RAM-диска. Землю - крестьянам, баяны-наркоманам, рамить - скульсерверу!
8 ноя 11, 11:54    [11562571]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить