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

Откуда:
Сообщений: 5
Имеется сервер работающий под управлением Windows.
Работает связка apache+php+mssql
Для работы с mssql из php используется нативная клиентская библиотека sqlsrv
Есть желание перенести все это дело на Linux.
Есть два варианта, freetds или unixODBC
freetds отрабатывает на порядок быстрее чем sqlsrv но при это весьма требовательный к ресурсам.
То есть при запрос
автор
SELECT TOP 1000000 * FROM
кушает 2 гига рамы
Тот же самый sqlsrv вообще ничего не кушает но выполняет долго.

Имеется альтернатива http://www.microsoft.com/download/en/details.aspx?id=28160
В консоли через sqlcmd все отрабатывает без проблем
автор
sqlcmd -S 192.168.xx.xx -U 'xxx' -P 'xxxxx' -q 'SELECT TOP 10 * FROM [xxxxxxxx].[dbo].[Evn]'


автор
isql -v MSSQL 'xxxxx' 'xxxxxxx'


вываливается

автор
[S1T00][unixODBC][Microsoft][SQL Server Native Client 11.0]Login timeout expired
[08001][unixODBC][Microsoft][SQL Server Native Client 11.0]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.
[08001][unixODBC][Microsoft][SQL Server Native Client 11.0]TCP Provider: Error code 0x2726
[ISQL]ERROR: Could not SQLConnect


Конфиг odbc.ini

автор
[root@localhost php]# cat /etc/odbc.ini
[MSSQL]
Description=Microsoft SQL Server ODBC Driver V1.0 for Linux
Driver=SQL Server Native Client 11.0
Trace=Yes
Servername = 192.168.xx.xx
Database = xxxxxxx
23 апр 12, 10:04    [12455124]     Ответить | Цитировать Сообщить модератору
 Re: unixodbc + MSSQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
manefesto
То есть при запрос
автор
SELECT TOP 1000000 * FROM
кушает 2 гига рамы
Тот же самый sqlsrv вообще ничего не кушает но выполняет долго.

Потому что результат первого запроса целиком помещается в память, а результат второго докачивается постепенно, по мере "листания" ?
23 апр 12, 10:12    [12455149]     Ответить | Цитировать Сообщить модератору
 Re: unixodbc + MSSQL  [new]
manefesto
Member

Откуда:
Сообщений: 5
к сожалению так
php_mssql вроде как считается устаревшим
23 апр 12, 10:47    [12455315]     Ответить | Цитировать Сообщить модератору
 Re: unixodbc + MSSQL  [new]
manefesto
Member

Откуда:
Сообщений: 5
суть в том что хочеться завестим unixODBC, который предлагает сам MS
23 апр 12, 10:48    [12455321]     Ответить | Цитировать Сообщить модератору
 Re: unixodbc + MSSQL  [new]
manefesto
Member

Откуда:
Сообщений: 5
может связка pdo+freetds будет быстрее ?
24 апр 12, 07:15    [12460420]     Ответить | Цитировать Сообщить модератору
 Re: unixodbc + MSSQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
manefesto
может связка pdo+freetds будет быстрее ?

Извините, а вы собираетесь тестировать запросы вида SELECT TOP 1000000 * FROM ?
Т.е. выдавать клиенту миллионы записей в качестве результата ?
24 апр 12, 07:49    [12460446]     Ответить | Цитировать Сообщить модератору
 Re: unixodbc + MSSQL  [new]
manefesto
Member

Откуда:
Сообщений: 5
ну не миллионы, но запросы будут очень большими и сложными для отчетности
а выборка миллиона записей это некий синтетический тест.
25 апр 12, 13:46    [12468873]     Ответить | Цитировать Сообщить модератору
 Re: unixodbc + MSSQL  [new]
iljy
Member

Откуда:
Сообщений: 8711
manefesto
ну не миллионы, но запросы будут очень большими и сложными для отчетности
а выборка миллиона записей это некий синтетический тест.

Хреновый это тест. Какой смысл тестировать передачу миллиона записей, если реально будут передаваться 20? А поведение клиента может очень сильно меняться, например, от типа курсора: если используется клиентский, то все данные реально перекачиваются на клиента и обрабатываются на нем, если же серверный, то на клиента данные могут передавтаься только по требованию. Так что тестировать надо в условиях, приближенных к реальным, а не в тех, которые вам проще иммитировать.
25 апр 12, 13:56    [12468965]     Ответить | Цитировать Сообщить модератору
 Re: unixodbc + MSSQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
manefesto
ну не миллионы, но запросы будут очень большими и сложными для отчетности
а выборка миллиона записей это некий синтетический тест.

Что тестирует _передача_ миллиона записей с сервера клиенту ?
25 апр 12, 14:13    [12469079]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить