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

Откуда: Невоград
Сообщений: 324
Имеется два мсскл сервера: СЕРВЕР1 и СЕРВЕР2, на котрых висят одинаковые базы. Перенёс с помощю DTS 1 таблицу с СЕРВЕР1 на СЕРВЕР2. (Переписал старую таблицу новой). Перенеслось вроде прилично - СКЛ запросы в КвериАналайзере выдают всё что нужно. Однако на СЕРВЕР2 перловский скрипт начал выкидывать непонятные ошибки вроде:

DBD::ADO::st execute warning: Can't Open Recordset for 
'SELECT * FROM Users WHERE confirmed='1' AND approved='1'' Package : DBD::ADO::st Filename : 
C:/Perl/site/lib/DBD/ADO.pm Line : 1137 Description : 
[Microsoft][ODBC SQL Server Driver]Тип курсора изменен 
HelpContext : HelpFile : NativeError : Number : 265946 Source : 
Microsoft OLE DB Provider for ODBC Drivers SQLState : 01S02 
at C:\www\xxxxxx\lib/DBIx/AdoExt.pm line 67. 
Can't call method "Move" on an undefined value at C:\www\xxxxxxx\lib/DBIx/AdoExt.pm line 68.

Но дело конечно не в скрипте, а в данных, ведь со старой таблицей всё хорошо работало. Стал разбираться. Обратил внимание что "SELECT * FROM Users" возвращает по 213 строк, как на СЕРВЕР1, так и на СЕРВЕР2. Однако В ЕнтерпрайзМенеджере на СЕРВЕРЕ1 Users->Properties->General->Rows = 215 ! На СЕРВЕР2 тоже самое = 213.

Что это означает?
21 авг 09, 17:49    [7568530]     Ответить | Цитировать Сообщить модератору
 Re: Сколько на самом деле строк в таблице? - 2  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Вы еще третий раз запостите, а то тут с первого раза не понимают
DBCC CHECKDB что покажет ?
21 авг 09, 17:54    [7568556]     Ответить | Цитировать Сообщить модератору
 Re: Сколько на самом деле строк в таблице? - 2  [new]
Николай А.
Member

Откуда: Невоград
Сообщений: 324
Там плохо выложилось, а подправить нельзя

DBCC CHECKDB выдал:

...
DBCC results for 'Users'.
There are 213 rows in 9 pages for object 'Users'.
...
CHECKDB found 0 allocation errors and 0 consistency errors in database 'xxxx'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
21 авг 09, 18:01    [7568589]     Ответить | Цитировать Сообщить модератору
 Re: Сколько на самом деле строк в таблице? - 2  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Николай А.
Там плохо выложилось, а подправить нельзя

DBCC CHECKDB выдал:

...
DBCC results for 'Users'.
There are 213 rows in 9 pages for object 'Users'.
...
CHECKDB found 0 allocation errors and 0 consistency errors in database 'xxxx'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

это там, где 215 показывает ?
Попробуйте перестроить индексы
21 авг 09, 18:07    [7568618]     Ответить | Цитировать Сообщить модератору
 Re: Сколько на самом деле строк в таблице? - 2  [new]
Николай А.
Member

Откуда: Невоград
Сообщений: 324
Да, там где 215 показывает.

Насчёт перестроить индексы - ткните пожалуйста, где про это написано.
21 авг 09, 18:17    [7568664]     Ответить | Цитировать Сообщить модератору
 Re: Сколько на самом деле строк в таблице? - 2  [new]
baracs
Member

Откуда: Москва
Сообщений: 7198
Ozerov
Попробуйте перестроить индексы

Точнее, статистику обновить.
21 авг 09, 18:22    [7568679]     Ответить | Цитировать Сообщить модератору
 Re: Сколько на самом деле строк в таблице? - 2  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
BOL - rebuilding indexes. В планах обслуживания есть есть такая операция. На самом индексе, если ткнуть правой кнопкой есть пункт реорганизации. И на будущее, начинайте с результата select @@version
21 авг 09, 18:24    [7568685]     Ответить | Цитировать Сообщить модератору
 Re: Сколько на самом деле строк в таблице? - 2  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
baracs
Ozerov
Попробуйте перестроить индексы

Точнее, статистику обновить.

По индексам она обновится при ребилденге .
21 авг 09, 18:25    [7568692]     Ответить | Цитировать Сообщить модератору
 Re: Сколько на самом деле строк в таблице? - 2  [new]
baracs
Member

Откуда: Москва
Сообщений: 7198
Ozerov
baracs
Ozerov
Попробуйте перестроить индексы

Точнее, статистику обновить.

По индексам она обновится при ребилденге .

Да, конечно.

Но первопричина в устаревшей статистике таблицы. И ее обновление происходит гораздо быстрее, чем перестроение индексов.
21 авг 09, 18:28    [7568703]     Ответить | Цитировать Сообщить модератору
 Re: Сколько на самом деле строк в таблице? - 2  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Да, но получаем еще плюс, автор узнает про реиндексацию. Конечно 213 записей это ерунда, но все же
21 авг 09, 18:31    [7568709]     Ответить | Цитировать Сообщить модератору
 Re: Сколько на самом деле строк в таблице? - 2  [new]
Николай А.
Member

Откуда: Невоград
Сообщений: 324
И на будущее, начинайте с результата select @@version


СЕРВЕР 1: Microsoft SQL Server 2000 - 8.00.818
СЕРВЕР 2: Microsoft SQL Server 2000 - 8.00.2050
21 авг 09, 18:33    [7568715]     Ответить | Цитировать Сообщить модератору
 Re: Сколько на самом деле строк в таблице? - 2  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
Николай А.
И на будущее, начинайте с результата select @@version


СЕРВЕР 1: Microsoft SQL Server 2000 - 8.00.818
СЕРВЕР 2: Microsoft SQL Server 2000 - 8.00.2050

Обновить бы не помешало
21 авг 09, 18:34    [7568719]     Ответить | Цитировать Сообщить модератору
 Re: Сколько на самом деле строк в таблице? - 2  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
И на будущее, если вы имете тестовый сервер или переходите на другой продуктивный обязательно смотрите, что бы билды были одинаковыми. Так как одно и тоже на разных билдах может работать по разному. Да и вообще обновляться это хорошо
21 авг 09, 18:35    [7568724]     Ответить | Цитировать Сообщить модератору
 Re: Сколько на самом деле строк в таблице? - 2  [new]
Николай А.
Member

Откуда: Невоград
Сообщений: 324
Спасибо.

После DBCC DBREINDEX('xxxx.Users'); количество строк стало отображаться правильно.

... Правда ошибка ради которой это вытаскивалось осталась.... Может у вас есть какие-нибудь предположения?
21 авг 09, 18:47    [7568750]     Ответить | Цитировать Сообщить модератору
 Re: Сколько на самом деле строк в таблице? - 2  [new]
Николай А.
Member

Откуда: Невоград
Сообщений: 324
Разобрался в чём дело было - при експорте экспортировал таблицу как таблицу "Copy tables and views from the source database". В итоге таблица перенеслась без первичного ключа.

(Но нет худа без добра - узнал про перестройку индексов :-))
21 авг 09, 19:37    [7568860]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить